输入验证无限循环


    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的值,它会无限循环输入正确的组大小。这也适用于使用相同算法的膳食评级系统

你需要在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: '))

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

你想:

not ( 1 < groupno < 20)

除了Elliot的答案之外,您的while条件看起来有缺陷,您应该将其更改为

while groupno <= 1 or groupno >= 20:

假设你想要一个介于1和20之间的组

试一下?

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

最新更新