当输入正确的输入(0到100之间的数字)时,为什么这个while循环没有结束
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"
grade= raw_input("Please enter your marks for Maths : ")
invalid_input +=1
我输入的是一个数字或文本(这是一个无效的条目,请输入0到100之间的数字 有没有人知道什么是错的?
答案 0 :(得分:2)
grade=raw_input("Please enter your marks for Maths : ")
中的,grade
是一个字符串,而不是数字。尝试
grade = int(raw_input("Please enter your marks for Maths : "))
为了防止在用户输入错误时终止程序,您需要使用exceptions,如下所示
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
答案 1 :(得分:2)
你的grade
应该被转换为int。否则,因为它是一个字符串,while
条件将始终保持满足。
此外,您可以轻松(也许更干净地)使用invalid_input
的布尔值:
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"