【问题标题】:Syntax Error - Why is my code wrong? [closed]语法错误 - 为什么我的代码有误? [关闭]
【发布时间】:2015-12-14 20:55:12
【问题描述】:

我正在为学校的一个项目创建一个测验,我必须使用字符串函数验证输入。但是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)

【问题讨论】:

  • 如果您提到这是什么语言会很有帮助...
  • 语法错误只是复制/粘贴错误吗?
  • @quamrana 看起来像。此外,当您遇到错误时,您应该向我们提供回溯,以便我们帮助找出问题所在(通常它会提供一个特定的行号,让您了解问题所在)
  • 另外,您在内部 while 循环之后有一个多余的 return UserAns
  • 告诉我们哪条线路有问题是个好主意。如果错误不在该行上,则通常只有一行。一个字符的语法错误通常被认为是 SO 题外话,因为它们只是输入错误而不是重大的编程问题。

标签: python string validation syntax


【解决方案1】:

首先我会改变:

validAnswer = False
while QuestionNumber < 10:

while QuestionNumber < 10:
    validAnswer = False

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

你也应该删除:

return UserAns

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这更适合作为评论。
    • 注意到,感谢@Reti43。我在这里有点新,还在学习如何做出最好的贡献。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2017-05-18
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多