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