<div>
</div>
<p>我知道try/except块没有单独的作用域,我也知道这个问题的实际解决方案,尽管我想知道为什么会发生这种情况。我正在为我的sdev类制作一个简单的猜谜游戏,虽然我可以在try/except块之前添加guess_num使其工作,但为什么我也有</p>
<p>我让它循环回main,但是如果我通过程序,没有输入一个数字作为输入,它最终会使我再次回到输入,但是如果我再输入一个数字,它会给我这个错误:</p>
<pre><code>Traceback (most recent call last):
File "C:\Users\Jexxy\Documents\MyRepo\Guessing_Game.py", line 35, in <module>
main()
File "C:\Users\Jexxy\Documents\MyRepo\Guessing_Game.py", line 31, in main
if guess_num > 0 and guess_num < 100 and isinstance(guess_num, int):
UnboundLocalError: local variable 'guess_num' referenced before assignment
</code></pre>
<pre><code>def main():
random_num = random.randrange(1, 5)
try:
guess_num = int(input('''Welcome to the guessing game!
A Random number between 1-100 has already been generated!
When ready, please enter a number between 1-100 to make your guess: '''))
except ValueError:
try_again = input("You must enter a number! Try again? Y/N: ")
if try_again.lower() == "y":
main()
else:
exit(0)
if guess_num > 0 and guess_num < 100 and isinstance(guess_num, int):
print(guess_num)
</code></pre>