Python 验证函数的问题

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

我创建了一个程序,需要一个验证组件来确保输入的分数在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)
    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
总是错误的,这确实是表面上的。但是你最好自己去拿。谢谢!一般来说,我是一名编程新手,我一定会研究它