Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 语法错误-为什么我的代码错了?_Python_String_Validation_Syntax - Fatal编程技术网

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

Python 语法错误-为什么我的代码错了?,python,string,validation,syntax,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.randin

我正在学校为一个项目创建一个测验,我必须使用字符串函数验证输入。然而,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)
#问题+分数
def quick():
问题编号=0
分数=0
validAnswer=False
当问题编号<10时:
num1=random.randint(1,20)
num2=随机的随机数(1,20)
operator=random.choice(list(Operators.keys())#从运算符列表中选择random运算符
问题编号+=1
打印问题编号“)”、“是什么”、num1、操作员、num2“?”
ans=运算符.get(运算符)(num1,num2)
UserAns=float(原始输入()
而validAnswer==False:
尝试:
UserAns=float
如果UserAns==int:
validAnswer=真
其他:
UserAns=float(原始输入()
除值错误外:
UserAns=float(原始输入()
返回用户
如果UserAns==ans:#将用户的答案与正确答案进行比较
score=score+1#将用户的当前分数加一
打印“正确!”
其他:
打印“不正确!”
打印“”
打印“你的分数是”,分数,“干得好!”#将分数呈现给用户
返回(分数)

我没有检查测试整个代码,但我注意到在下一行末尾的两个不同位置缺少一个括号

UserAns = float(raw_input()**)** 
首先,我要改变:

validAnswer = False
while QuestionNumber < 10:

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

如果你提到这是什么语言,那会很有帮助……语法错误只是复制/粘贴错误吗?@quamrana看起来是这样。此外,当你遇到错误时,你应该给我们回溯,这样我们可以帮助找到错误所在(通常它会给出一个具体的行号,让你大致了解问题)另外,在内部
while
循环之后有一个冗余的
return UserAns
。告诉我们哪一行有问题是个好主意。如果错误不在那一行,它通常只有一行。一个字符的语法错误通常被认为是离题的,因为它们只是键入错误,而不是重要的程序amming问题。这更适合作为评论。注意,并感谢@Reti43。我在这里有点新,仍在学习如何做出最好的贡献。
while QuestionNumber < 10:
    validAnswer = False
return UserAns