while True:
Check = isinstance(Age, str)
Age = (int(input("Ok, How old are you: ")))
if 100 <= Age:
print("try again")
if Check == True:
print("try again")
else:
break
如果在打印"重试"时输入是字符串,我试图让它循环回去,但是当我这样做时,它会导致 ValueError
如果你执行你的代码,第一个错误将是NameError
,因为你在输入之前使用它。
但是,如果要检查用户输入的值是否是没有 ValueError 的数字,则可以使用isdigit
函数。只需稍作修改,您就可以实现您想要做的事情:
while True:
age = input("Ok, How old are you: ")
if age.isdigit() and int(age) <= 100:
break
print("try again")
错误出现在if
检查之前。您正在将输入转换为可能不可能的输入int
,因此您得到ValueError
。
相反,您需要执行以下操作:
while True:
age = input("How old are you?")
try:
age = int(age)
except ValueError:
print('try again')
continue
if age >= 100:
print('try again')
continue
break