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