我正在为学校的项目创建一个测验,我必须使用字符串函数验证输入。但是,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)
答案 0 :(得分:1)
首先我要改变:
validAnswer = False
while QuestionNumber < 10:
到
while QuestionNumber < 10:
validAnswer = False
在第一个循环之后validAnswer
可能有True
作为其值(这将跳过第二个循环)
你也应该删除:
return UserAns
因为这将返回到调用Quiz
函数的位置,跳过以下代码(因此,正如您所问,循环不起作用)
答案 1 :(得分:0)
我没有检查测试整个代码,但我确实注意到在下面一行的末尾有一个括号,在两个不同的地方。
UserAns = float(raw_input()**)**