Python 验证函数的问题
我创建了一个程序,需要一个验证组件来确保输入的分数在1到10之间,这个函数稍后将用于附加一个列表。到目前为止,我写了以下内容:Python 验证函数的问题,python,validation,Python,Validation,我创建了一个程序,需要一个验证组件来确保输入的分数在1到10之间,这个函数稍后将用于附加一个列表。到目前为止,我写了以下内容: def validation(goodNum,score): goodNum = False while goodNum == False: score = raw_input("Please enter a valid score between 1 and 10 ") try: score = int(score) excep
def validation(goodNum,score):
goodNum = False
while goodNum == False:
score = raw_input("Please enter a valid score between 1 and 10 ")
try:
score = int(score)
except:
score = raw_input("Please enter a valid score between 1 and 10 ")
if score > 1 and score < 11:
goodNum == True
else:
print "Invalid input"
return score
def验证(goodNum,score):
goodNum=False
而goodNum==False:
分数=原始输入(“请输入1到10之间的有效分数”)
尝试:
分数=整数(分数)
除:
分数=原始输入(“请输入1到10之间的有效分数”)
如果得分>1且得分<11:
goodNum==True
其他:
打印“无效输入”
回击得分
当我运行程序时,它会不断循环,不断要求我输入分数,就好像false变量没有变为true一样,在验证分数后它应该停止。我应该如何着手纠正此问题?您实际上没有更改
goodNum
的值:
goodNum == True
只需将goodNum
与True
进行比较即可。你的意思是:
goodNum = True
然而,还有其他问题:当你第一次输入了一个无法转换为整数的错误分数时,你会进入你的except块并再次要求输入。此时,原始输入的结果不会转换为int,因此下面的if将不起作用。我建议您将逻辑更改为:
def validation(goodNum,score):
goodNum = False
while goodNum == False:
score = raw_input("Please enter a valid score between 1 and 10 ")
try:
score = int(score)
except:
print "Invalid input could not convert to integer"
continue # Just start over
if score > 1 and score < 11:
goodNum = True
else:
print "Invalid input, score must be between 1 and 10"
return score
def验证(goodNum,score):
goodNum=False
而goodNum==False:
分数=原始输入(“请输入1到10之间的有效分数”)
尝试:
分数=整数(分数)
除:
打印“无效输入无法转换为整数”
继续,重新开始
如果得分>1且得分<11:
goodNum=True
其他:
打印“无效输入,分数必须在1到10之间”
回击得分
注意:我不知道您的设置或体验级别是什么,但我建议您使用一个IDE,它可以自动识别这样的语句(没有效果的语句),并让您通过放置断点来轻松调试脚本试着放置断点并找出为什么
goodNum
总是错误的,这确实是表面上的。但是你最好自己去拿。谢谢!一般来说,我是一名编程新手,我一定会研究它