语法错误 - 为什么我的代码错了?

时间:2015-12-14 20:55:13

标签: python string validation syntax

我正在为学校的项目创建一个测验,我必须使用字符串函数验证输入。但是,while循环中的while循环不起作用,为什么?

#QUESTIONS + SCORE

def Quiz():
    QuestionNumber = 0
    score = 0
    validAnswer = False
    while QuestionNumber < 10:
        num1 = random.randint(1,20)
        num2 = random.randint(1,20)
        operator = random.choice(list(Operators.keys())) #chooses random operator from list of operators
        QuestionNumber += 1
        print QuestionNumber, ")", "What is", num1,operator,num2, "?"
        ans = Operators.get(operator)(num1,num2)
        UserAns = float(raw_input()              

        while validAnswer == False:
            try:
                UserAns = float
                if UserAns == int:
                    validAnswer = True
                else:
                    UserAns = float(raw_input()
            except ValueError:
                UserAns = float(raw_input()
        return UserAns

        if UserAns == ans: #compares answer of user to correct answer
            score = score + 1 #adds one to the current score of user
            print "Correct!"

        else:
            print "Incorrect!"
    print ""        
    print "Your Score is", score,"! Well done!" #presents score to user
    return(score)

2 个答案:

答案 0 :(得分:1)

首先我要改变:

validAnswer = False
while QuestionNumber < 10:

while QuestionNumber < 10:
    validAnswer = False

在第一个循环之后validAnswer可能有True作为其值(这将跳过第二个循环)

你也应该删除:

return UserAns

因为这将返回到调用Quiz函数的位置,跳过以下代码(因此,正如您所问,循环不起作用)

答案 1 :(得分:0)

我没有检查测试整个代码,但我确实注意到在下面一行的末尾有一个括号,在两个不同的地方。

UserAns = float(raw_input()**)**