输入验证无限循环

时间:2014-03-11 14:44:43

标签: python loops

    groupno = int(input('Please enter the size of group: '))
    while groupno >= 1 or groupno <= 20:
        groupsizes= int(input('Please enter a valid group size: '))
    g.append(groupno)

好的,一旦我使用此代码,如果我输入一个大于20或小于1的值,它将无限循环以输入正确的组大小。这也适用于使用相同算法的膳食评级系统

4 个答案:

答案 0 :(得分:1)

您需要在while循环中更新groupno

while groupno >= 1 or groupno <= 20:
    # groupsizes= int(input('Please enter a valid group size: '))
    groupno = int(input('Please enter a valid group size: '))

答案 1 :(得分:0)

大于20的值也高于1,因此or语句的第一部分为真。

你想:

not ( 1 < groupno < 20)

答案 2 :(得分:0)

除了Elliot的回答,你的状态看起来有缺陷,你应该把它改成这个

while groupno <= 1 or groupno >= 20:

假设您希望组大小在1到20之间

答案 3 :(得分:0)

试试这个?

>>> def get_groupno():
...     groupno = 0
...     while not  1 <= groupno <= 20:
...         try:
...             groupno = int(input('Please enter a valid group size: '))
...         except ValueError:
...             continue
...     return groupno
...
>>> get_groupno()
Please enter a valid group size: 100
Please enter a valid group size: 0
Please enter a valid group size: 1
1