2017-12-27 14 views
-1

그래서 사용자가 정수를 입력하지 않으면 오류가 발생하는 프로그램의 일부를 만들고 있습니다. 다음은 사용자가 다시 번호를 입력하라는 메시지가 표시 될 때까지 그것은 잘 작동이 코드를 루핑하는 동안 나는 어떻게 갈 것인가?

try: 
    pw_length_ask = int(raw_input("How long would you like your password to be? ")) 
    final_pw_length = pw_length + int(pw_length_ask.strip()) 
    print("Pass length set to " + str(final_pw_length)) 
except ValueError: 
    print("You must enter a number.") 
    int(raw_input("How long would you like your password to be? ")) 

내 코드 ... ... 그냥 다음에 ValueError를 throw 충돌

ValueError

이다. 그렇다면 어떻게하면 값 오류를주는 대신 사용자가 올바른 입력을 제공 할 때까지 질문을 반복하도록 할 수 있습니까?

+3

캡쳐 화면에 링크하는 대신 여기에 오류 추적을 게시하십시오. – yash

+0

https://meta.stackoverflow.com/a/285557/14122 참고 : 왜 우리는 코드 이미지를 환영하지 않습니까? 그들은 검색 할 수 없으며 화면 판독기와 같은 보조 기술에 비우호적입니다. 결국 링크가 부패했을 때 다른 사람에게 도움이되지 않습니다. –

답변

0

이 같은 while 루프에 넣어 수 :

while True: 
    try: 
     pw_length_ask = int(raw_input("How long would you like your password to be? ")) 
     final_pw_length = pw_length + int(pw_length_ask) 
     print("Pass length set to " + str(final_pw_length)) 
     break 
    except ValueError: 
     print("You must enter a number.") 

오류 가능성이 당신이 except 블록에 배치 input에서왔다.

+0

'while'이 아니라 'While' –

+0

이것은' strip()'을 정수'pw_length_ask'에 놓으면 오류가 발생할 수 있습니다. 스트립은'raw_input' 뒤에 있어야합니다. – SigmaPiEpsilon