Python 语法错误-为什么我的代码错了?
我正在学校为一个项目创建一个测验,我必须使用字符串函数验证输入。然而,while循环中的while循环不工作,为什么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
#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