2017-12-27 5 views
-1

私は、ユーザーが整数を入力しなかったときにエラーを発生させるプログラムの一部を作成しています。以下は、私のコードは、それだけでクラッシュした後とValueErrorをスローこのコードをループしているとどうすればいいですか?

ValueError

...ユーザーが再度番号を入力するように要求されるまで、それは素晴らしい作品...

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? ")) 

です。だから、私はどのようにして値エラーを与えるのではなく、ユーザーが正しい入力を与えるまで質問を繰り返すようにしますか?

+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

関連する問題