如何使用input()仅接受正数作为int,

时间:2018-08-29 18:49:07

标签: python python-3.x input

im在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

1 个答案:

答案 0 :(得分:0)

这有帮助吗?这有效:

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:')时会发生错误,需要缩​​进。