<p>这是因为你没有一个break语句来把你从循环中拉出来,在循环中你要检查用户是否正确地猜到了数字</p>
<p>在这个循环中,</p>
<pre><code>while True:
players_guess = raw_input(prompt)
# new if clause to test against quit
if players_guess == quit_text:
if comfirm_quit():
QUIT
else:
continue # that is, do next round of loop
numofguess = numofguess+1
if comnum == int(players_guess):
print('Correct!')
elif comnum > int(players_guess):
print('Too low')
else:
print('Too high')
</code></pre>
<p>即使用户猜对了,也会要求他输入一个<code>raw_input</code>,因为循环仍然处于活动状态。如果按enter键,将得到<code>ValueError</code>,因为您正在对空字符串尝试<code>int</code>函数。要避免这种情况,请将循环更改为</p>
<pre><code>while True:
players_guess = raw_input(prompt)
# new if clause to test against quit
if players_guess == quit_text:
if comfirm_quit():
QUIT
else:
continue # that is, do next round of loop
numofguess = numofguess+1
if comnum == int(players_guess):
print('Correct!')
break
elif comnum > int(players_guess):
print('Too low')
else:
print('Too high')
</code></pre>
<p>这段代码还有其他问题。第一个while循环必须是<code>do_guess_round</code>函数的函数</p>