2009-06-04 2 views
0

그래서 최근에 파이썬을 배우기 시작했습니다 ... CSV에서 정보를 가져 오는 작은 스크립트를 작성 중이며 잘못된 입력을 사용자에게 알릴 수 있어야합니다.사용자가 incorect 정보를 입력 할 때 오류 트래핑

예를 들어

사용자가 자신의 ID 번호를 요구한다

는 ID 번호는 내가 내 스크립트가 예를 들어 잘못 입력 뭔가를 사용자가 알 수 있도록하고 싶습니다 R5 에 R1에서 아무것도 경우입니다 사용자가 a1 또는 r50을 입력하면 사용자가 잘못된 매개 변수를 입력했음을 사용자에게 알릴 필요가 있습니다. 어떻게해야합니까?

도움이 매우 될 것이다 (내가 모든 명령 ... 매개 변수와 물건을 잘 모릅니다) ....

은 내가 데프 문으로 보았다,하지만 난 파이썬의 모든 구문을 파악 수없는 것 많이 고맙다 = D

+0

:

import csv while True: id_number = raw_input('(enter to quit) ID number:') if not id_number: break # open the csv file csvfile = csv.reader(open('file.csv')) for row in csvfile: # for this simple example I assume that the first column # on the csv is the ID: if row[0] == id_number: print "Found. Here's the data:", row break else: print "ID not found, try again!" 

이제 코드를 추가 한 것을 편집 , 나는 예를 업데이트? 현재 사용중인 참조/튜토리얼을 알고 있다면 더 나은 것을 제안 할 수 있습니다. –

+0

흠, 잘가, 어쩌면 내가 무엇을 넣으면 친구가 나에게 준 그냥 무작위 컨닝 페이퍼 도움이되어 지금까지 진정한 동안 : \t CSV 가져 오기 \t DATE, 룸, 과정, STAGE = 범위 (4) \t csv_in = 개방 ("roombookings.csv", "RB") \t 리더 = csv.reader (csv_in) \t 데이터 = [] 리더의 행 \t : \t \t 데이터.추가 (행) \t roomlist = raw_input을 ("방 번호 입력 :") \t 인쇄 "다음과 같은 과정이 실행 한 지정한 방 :" \t 데이터 sub_list를 들어 : \t \t 경우 sub_list [룸] = = roomlist : \t \t \t 날짜, 룸, 코스, 무대 = sub_list \t \t \t 인쇄 날짜, 코스 –

+0

실패, 그것은 완전히 내 서식 롤을 망 쳤어! –

답변

1

당신이 무엇을 요구하고 있는지 모르겠지만 사용자가 올바른 ID를 입력했는지 확인하려면 정규식을 시도해야합니다. Python Documentation on module re을보십시오. 또는

가 여기에 사용자의 입력을 확인합니다 예입니다 "파이썬 재"를 구글에게 물어

import re 

id_patt = re.compile(r'^r[1-5]$') 
def checkId(id): 
    if id_patt.match(id): 
     return True 
    return False 

HTH, 안부.

편집 : 나는 여기에 몇 가지 더 코드, 당신이 다시 질문을있어 읽어 가 (단지 앞의 코드 조각 아래에 붙여 넣기)

validId = False 
while not validId: 
    id = raw_input("Enter id: ") 
    validId = checkId(id) 

그런데이, 그것은 아주 짧은 방식으로 작성 될 수 있지만, 이 코드는 Python을 처음 사용하는 사람이 이해하기 쉬워야합니다.

+0

모든 도움에 감사드립니다! = D 이러한 대답은 나를 많이 도왔습니다!, 나는 마침내이 스크립트에 대한 이해를 얻었습니다. 프로그래밍에서 무서운 메신저 –

1

실습을 읽으십시오. official 하나가 꽤 좋습니다. 나는 또한 초보자를위한 this book을 좋아한다. 책이나 자습서를 사용하여 구문을 학습하는 데 사용하는 어떤

import csv 
DATE, ROOM, COURSE, STAGE = range(4) 

while True: 
    csv_in = open("roombookings.csv", "rb") 
    reader = csv.reader(csv_in) 
    roomlist = raw_input("(Enter to quit) Room number: ") 
    if not roomlist: 
     break 
    print "The room you have specified has the following courses running: " 
    for sub_list in reader: 
     if sub_list[ROOM] == roomlist: 
      print sub_list[DATE], sub_list[COURSE] 
+0

모든 도움에 감사드립니다! = D 이러한 대답은 나를 많이 도왔습니다!, 내가 마침내이 스크립트에 그립을 잡는 것 같아요 .. 프로그래밍에 끔찍한 –

관련 문제