这个问题在这里已有答案:
我真的很新的Python 3.7即时测试一些东西,我试着理解我怎么能问他这个年龄的人。但是,如果他输入一个字母或一个负数,它只说正数,那么它再次问这个问题,如果数字为正,则程序继续。这是我的代码到目前为止给了我一个错误:
while true :
age = input('Your age : ')
try:
age = int(age)
except ValueError:
print ('Numbers only')
continue
else:
break
给我一个错误:
> line 10
age = input()
^
SyntaxError: expected an indented block
这有帮助吗?这有效:
while True:
age = input('Your age')
try:
age = int(age)
break
except ValueError:
print ('Numbers only')
说明:条件'True'按定义为True,因此循环无限期地发生,直到它达到“中断”。 Age采用标准输入并尝试将其转换为整数。如果输入了非整数字符,则会发生异常(ValueError),并且将打印“仅数字”。然后循环将继续。如果用户输入一个整数,输入将转换为整数,程序将从循环中断。
关于语法错误:在Python语法中,关键字是“True”而不是true。您需要在循环或条件之后缩进所有项目(在这种情况下,当程序遇到age = input('Your age:')时发生错误,需要缩进)。