首页 > 解决方案 > 如何使用 input() 只接受正数作为 int,

问题描述

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

标签: pythonpython-3.xinput

解决方案


这有帮助吗?这有效:

while True:
    age = input('Your age')
    try:
        age = int(age)
        break
    except ValueError:
        print ('Numbers only')

解释:根据定义,条件“真”为真,因此循环无限期地发生,直到它遇到“中断”。Age 接受标准输入并尝试将其转换为整数。如果输入了非整数字符,则会发生异常(ValueError),并打印“仅限数字”。然后循环将继续。如果用户输入一个整数,输入将被转换为一个整数,程序将退出循环。

关于语法错误:在 Python 语法中,关键字是“True”而不是 true。您需要在循环或条件之后缩进所有项目(在这种情况下,当程序遇到需要缩进的 age=input('Your age :') 时发生错误。


推荐阅读