Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无限while循环_Python - Fatal编程技术网

Python 无限while循环

Python 无限while循环,python,Python,为什么当输入正确的输入(0到100之间的数字)时,while循环没有结束 grade=110 无效的_输入=1 当等级100时: 如果无效输入>=2: 打印“这是一个无效条目” 打印“请输入一个介于0和100之间的数字” 分数=原始输入(“请输入您的数学分数:”) 无效的_输入+=1 无论我输入了什么,无论是数字还是文本(这是一个无效条目,请输入一个介于0和100之间的数字) 有人知道怎么回事吗?在grade=raw\u输入(“请输入您的数学分数:”),grade是字符串,而不是数字。试试看

为什么当输入正确的输入(0到100之间的数字)时,while循环没有结束

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"