测试用户输入直到满足条件

时间:2021-01-20 02:10:23

标签: python

在 python 中,我需要用户的输入介于年份之间。

使用 if 语句将错误(如果超出范围)返回给用户,并邀请他重新选择年份。

他第二次选择的年份需要用同样的条件再次测试。这还没有发生。

在满足条件之前重新测试他的输入的最佳解决方案是什么?

这是一些实际代码

year = input("Enter a year between 1900 and 2099 : ")
if year >= "1900" or year <= "2099":
    year = (input("The year you entered is out of range, please try again : "))
year = int(year)

提前致谢

1 个答案:

答案 0 :(得分:2)

说明:

您可以使用 while 循环。 while 循环将一直运行,直到某个条件为 False。在这种情况下,它会一直运行直到使用 break 关键字,因为条件将始终为 True。您还可以使用 tryexcept 确保输入一个整数。如果不是整数,则使用 continue 再次开始循环。

代码:

prompt = "Enter a year between 1900 and 2099: "

while True:
    year = input(prompt)

    try:
        year = int(year)
    except ValueError:
        prompt = "The year you entered is out of range, please try again : "
        continue 

    if year >= 1900 or year <= 2099:
        break
    else:
        prompt = "The year you entered is out of range, please try again : "