2017-12-11 12 views
0

私のコードは年齢を要求しますが、年齢は常に単語ではなく有効な数値になるようにします。Python - 年齢関数を入力に戻す

while True: 

     test = int(input("What is your age? ")) 
     if test > 0: 
      print("has to be a number") 
+0

https://stackoverflow.com/a/354073/454827 – ZiTAL

答えて

-1

int()がinput()を解析できない場合、NameErrorが発生します。これはあなたがキャッチし、再び関数を呼び出していることを確認してくださいすることができます...

これを試してみてください:

def check_age(): 
    try: 
     return int(input("What is your age? ")) 
    except NameError: 
     print("Must be a number") 
     return check_age() 

if __name__ == '__main__': 
    print(check_age()) 
+0

どのように私はそれように作るのですかValueError:基数10(基数10)の無効なリテラル: 'ad' – Sam

+0

exceptブロックのcheck_age()コールを参照してください... a小さなtypo ... return check_age():-) – Ivonet