<p>代码片段中存在一些逻辑和表示错误,您面临的主要问题是得到12个问题,而不是10个,这是因为您在代码末尾调用<code>askQuestion()</code>和<code>randomCalc()</code>,同时从<code>quiz()</code>函数本身内部调用它们。另一个问题是在循环中使用<code>break</code>语句,我猜您混淆了<code>continue</code>和<code>break</code>语句,<code>break</code>用于退出循环,但是对于Python <code>for</code>循环,您不需要任何<code>break/continue</code>构造。提供的代码可能看起来像</p>
<pre><code>import random
import operator
def quiz():
print('Welcome. This is a 10 question math quiz\n')
name = input("Please enter your name")
print("Hello", name," Let's begin the quiz!")
score = 0
for i in range(10):
correct = askQuestion()
if correct:
score += 1
print('Correct!')
print "Score",(score),"\n"
else:
print('Incorrect!')
print "Score",(score), "\n"
print 'Your score was {}/10'.format(score)
def askQuestion():
answer = randomCalc()
guess = float(input())
return guess == answer
def randomCalc():
ops = {'+':operator.add,
'-':operator.sub,
'*':operator.mul,
'/':operator.truediv}
num1 = random.randint(0,11)
num2 = random.randint(1,11)
op = random.choice(list(ops.keys()))
answer = ops.get(op)(num1,num2)
print('What is {} {} {}?'.format(num1, op, num2))
return answer
quiz()
#askQuestion()
#randomCalc()
</code></pre>