2017-11-10 10 views
-2

私はPythonでスクリプトを書いています。「あなたの年齢は?」と尋ねるときに番号を入力しないと、そのようにしたいと思います。 「番号を入力してください」と表示され、元の質問が繰り返されます。私は他の投稿で見た多くの異なる提案を試みましたが、誰も働いていません。ここでPythonで入力が数値かどうかをどうやって調べるのですか?

はスクリプトです:

yesorno = "yes" 

while yesorno == "yes" : 
    import time 
    Age = 0 
    Age = int(input("What is your age?")) 
    Age = Age*365*24 
    print(Age) 
    yesorno = input("Would you like to run again?(yes/no)") 

while yesorno != "no" :  
print("Please input yes or no") 
yesorno = input("Would you like to run again?(yes/no)") 

while yesorno == "no" : 
print("Program stopping...") 
import sys 
sys.exit("Program stopping...") 
+0

入力が有効になるまでループする方法を示すたくさんの投稿もあります。 – Prune

答えて

0

あり、これを行うには多くの方法がありますが、私は、この行にfocusting、既存のコードに追加されます1をお勧めすることができます:

Age = int(input("What is your age?")) 

として、あなたはすでに知っているでしょう、人が整数でないものを入力した場合、この行はエラーを投げます。

try ... except ...ブロックでこれらのエラーを捕捉できますが、その行に非intが入力されたときにスローされるエラーは例外です。

try: 
    Age = int(input("What is your age?")) 
except ValueError: 
    print("Please input a number") 

これがループを継続させるために年齢入力が成功した場合にのみ実行されるので、私はtry文でyesornoを置くところ、ユーザーはように、はい、入力されたかのようにそれ以外の場合は、反応:

try: 
    Age = int(input("What is your age?")) 
    Age = Age*365*24 
    print(Age) 
    yesorno = input("Would you like to run again?(yes/no)") 
except ValueError: 
    print("Please input a number") 
    yesorno = "yes" 
関連する問題