2013-10-25 4 views
0

나는 try와 except를 사용하여 빈 사용자 입력을 어떻게 잡을 수 있는지 알아 내려고하고있다. 당신은 예를 들어이 있던 경우 :파이썬에서 try와 except를 사용하여 빈 사용자 입력을 잡는 방법?

try: 
    #user input here. integer input 
except ValueError: 
    #print statement saying empty string. 

나는 또한 만들기 위해 다른 값 오류를 잡을 필요가 있지만 그들은 내가 그림을 순서에 경우 및 ELIF 설정을 사용할 수있는 방법을 정수가 아닌 문자 또는 문자열을 입력해야합니다

try: 
    user_input = input() # raw_input in Python 2.x 
    if not user_input: 
     raise ValueError('empty string') 
except ValueError as e: 
    print(e) 

을하지만 "정수 : 그것은 빈 문자열 또는 str을 대신 INT

+1

StackOverflow에 오신 것을 환영합니다! 코드를 게시 해 주셔서 감사합니다.하지만 질문에 대한 설명을 추가하십시오. 어떤 문제가 있으며, 예상되는 결과는 무엇이며, 지금까지 시도한 내용은 무엇입니까? (http://whathaveyoutried.com)? [질문 체크리스트] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)를 통해 귀하의 질문에 더 잘 답변 할 수 있습니다. 감사! –

답변

3

당신은 말 그대로 하늘의 캐릭터 라인에 예외를 발생하려면, 당신은 수동으로 수행해야합니다의 경우 밖으로 의견 "의 일부가 나를 생각하게 만든다. 너 이 실제로 인 경우 빈 문자열을 포함하되 이에 국한되지 않는 정수 이외에 예외를 발생시키는 것이 좋습니다.

는 그렇다면, 대화 형 인터프리터를 열고 등 int('2'), int('abc'), int(''), 같은 것들을 입력 할 때 어떻게되는지, 대답은 매우 명백해야한다.

그러나 그렇다면 빈 문자열을 다른 것으로 구별하는 방법은 무엇입니까? 단순함 : try 앞에 user_input = input()을 입력하고 except 내에서 user_input이 비어 있는지 확인하십시오. (당신은 다른 errno 하나에서 EINTRerrnoOSError을 구별하는 실제 코드, 예를 들어,에 except 핸들러 내부에 모든 시간을 if 문을 넣습니다.)

0
try: 
    input = raw_input('input: ') 
    if int(input): 
     ...... 
except ValueError: 
    if not input: 
     raise ValueError('empty string') 
    else: 
     raise ValueError('not int') 

는, 빈 문자열과 비 INT 모두 이것을 시도 을 검출 할 수있다. 다음 번에는 질문에 구체적으로 답하십시오.