Python 无限while循环
为什么当输入正确的输入(0到100之间的数字)时,while循环没有结束Python 无限while循环,python,Python,为什么当输入正确的输入(0到100之间的数字)时,while循环没有结束 grade=110 无效的_输入=1 当等级100时: 如果无效输入>=2: 打印“这是一个无效条目” 打印“请输入一个介于0和100之间的数字” 分数=原始输入(“请输入您的数学分数:”) 无效的_输入+=1 无论我输入了什么,无论是数字还是文本(这是一个无效条目,请输入一个介于0和100之间的数字) 有人知道怎么回事吗?在grade=raw\u输入(“请输入您的数学分数:”),grade是字符串,而不是数字。试试看
grade=110
无效的_输入=1
当等级<0或等级>100时:
如果无效输入>=2:
打印“这是一个无效条目”
打印“请输入一个介于0和100之间的数字”
分数=原始输入(“请输入您的数学分数:”)
无效的_输入+=1
无论我输入了什么,无论是数字还是文本(这是一个无效条目,请输入一个介于0和100之间的数字)
有人知道怎么回事吗?在grade=raw\u输入(“请输入您的数学分数:”)
,grade
是字符串,而不是数字。试试看
grade = int(raw_input("Please enter your marks for Maths : "))
为了防止在用户输入错误时终止程序,您需要使用
grade = 110
invalid_input = 1
while grade< 0 or grade> 100:
if invalid_input >=2:
print "This is an invalid entry"
print "Please enter a number between 0 and 100"
try:
grade= int(raw_input("Please enter your marks for Maths : "))
except ValueError:
grade = -1 # just to enter another iteration
invalid_input +=1
grade=110
无效的_输入=1
当等级<0或等级>100时:
如果无效输入>=2:
打印“这是一个无效条目”
打印“请输入一个介于0和100之间的数字”
尝试:
分数=整数(原始输入(“请输入您的数学分数:”)
除值错误外:
等级=-1#只需进入另一个迭代
无效的_输入+=1
您的成绩应转换为int。否则,由于它是字符串,因此while
条件将始终满足
此外,您还可以同样轻松地(也许更干净地)使用布尔值表示无效的\u输入
:
invalid_input = True
while invalid_input:
grade = int(raw_input("enter data"))
if grade >= 0 and grade <= 100:
invalid_input = False
else:
print "Please try again"
无效\u输入=真
当输入无效时:
等级=整数(原始输入(“输入数据”))
如果等级>=0且等级为0,则如果我输入一个数字,循环结束,但如果我输入文本,则会出现回溯错误。这是grade=int(原始输入(“请输入数学分数”))中第13行的“i get converter.py”消息。值错误:int的文本无效()以10为基数:“the”是,但我希望消息这是一个无效条目,请输入一个介于0和100之间的数字。有人知道怎么回事吗?您需要使用try-catch结构。请看一看,谢谢Emmett,我将尝试此项。如果0,您也可以执行
invalid_input = True
while invalid_input:
grade = int(raw_input("enter data"))
if grade >= 0 and grade <= 100:
invalid_input = False
else:
print "Please try again"