<p>你有一种编程风格,我称之为“类型和希望”。<code>maxNum</code>似乎在一个数字和一个字符串之间跳来跳去,表明您还没有考虑到您的方法。下面是一个重做,每个例程都尝试在没有额外变量的情况下做一些明显和有用的事情。(我省略了最初的<code>choice</code>逻辑,因为它对这个示例没有帮助,这个示例可以放入您的choice框架中。)</p>
<pre><code>import random
def getGuess(maxNum):
guess = -1
while guess < 1 or guess > maxNum:
try:
guess = int(input("Guess? "))
except ValueError:
print("Please enter valid input")
return guess
def checkGuess(guess, number):
if guess > number:
print("Too High")
elif guess < number:
print("Too Low")
else:
print("Correct")
return True
return False
print("You have selected Easy as the level of difficulty")
maxNum = 10
maxTries = 3
number = random.randint(1, maxNum)
count = 1
guess = getGuess(maxNum)
while True:
if checkGuess(guess, number):
break
count = count + 1
if count > maxTries:
print("Too many guesses, it was:", number)
break
guess = getGuess(maxNum)
</code></pre>
<p>需要考虑的几个具体问题:避免使用<code>except</code>而不知道您期望的异常是什么;避免在字符串中传递数字在输入时将数字字符串转换为数字,在输出时将数字转换为数字字符串,但在两者之间使用实际数字。你知道吗</p>