如何使用input()只接受正数作为int,[duplicate]

问题描述 投票:-2回答:1

我真的很新的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
python python-3.x input
1个回答
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:')时发生错误,需要缩​​进)。

© www.soinside.com 2019 - 2024. All rights reserved.