<p>你在有限的尝试次数上迭代。我觉得把它转换成<a href="https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops" rel="nofollow noreferrer">search-style ^{<cd1>}</a>:</p>
<pre><code>def superName(n, r): # Note, we ask for all attempts, no initial guess
for guessCount in (1,2):
r,g = getUserGuess()
print(r,g)
if g == r:
if guessCount == 1:
#hooray
print(f'Congrats! You can use your chosen name. Your superhero name is {n}')
return
elif guessCount == 2:
#meh good effort
print('Your superhero name is Captain Marvel.')
return
# Note: that could've been an else
# We have covered every case of guessCount
else: # Not necessary since we return instead of break
print('All your guesses were incorrect. Sorry you do not have super powers')
print(f'The number you were looking for was {r}')
</code></pre>
<p>我们可以更进一步,对消息进行迭代:</p>
^{pr2}$
<p>我注意到<code>getUserGuess</code>调用实际上并没有改变{<cd3>}。您可能需要重新考虑(此修订版也会更改<code>r</code>,这可能也不是您想要的)。这就解释了为什么你从来没有看到第二个成功消息;你输入了第二个猜测,但是程序再次检查了第一个猜测。在</p>