它返回的错误是:
NameError: name 'lives' is not defined
我知道代码不够高效,这是我的第一个项目之一,但是无论我尝试做什么,这个错误都会弹出。我已经尝试过为此设置全局变量,但没有帮助。我真的很希望能得到一些帮助,谢谢!
import random
import time
def main():
global guess,rand_num
win = False
rand_num = 45
lives = 10
while lives > 0 and win == False:
guess = int(input("Guess a number!"))
compare()
print("Well done!")
time.sleep(3)
def compare():
global lives,win
if guess == rand_num:
print("You guessed correct!")
win = True
elif guess > rand_num:
print ("Guess lower!")
lives = lives - 1
else:
print ("Guess higher!")
lives = lives - 1
def repeat():
replay = input("would you like to play again? Y/N")
if replay == "Y":
print("enjoy!")
main()
elif replay == "N":
"Goodbye then, hope you enjoyed!"
time.sleep(3)
os._exit
else:
print("please enter Y or N")
repeat()
main()
repeat()
编辑:将全局变量global lives放在main()函数内返回错误:
UnboundLocalError: local variable 'lives' referenced before assignment
global
声明应该在main
函数中。如果你这样做,你的代码就可以正常工作了。 - zondo