它返回的错误是:
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()
EDIT:puting global lives in main()返回错误:
UnboundLocalError: local variable 'lives' referenced before assignment
您没有声明
lives
在main()
中是全局的,因此它是该函数的本地函数。您需要在函数main之外定义变量“lives”,然后在要引用该全局变量的任何函数中定义“global lives”。当您在函数中并为变量赋值时,它假定该变量在本地范围内。使用“全局生命”告诉该函数将全局范围视为生命的参考。
当您在函数内部声明时,它们仅在该函数范围内可用,因此在函数和代码外部声明全局变量将工作正常。
现在一切正常了。有关gloval与局部变量的详细信息,可以阅读:http://www.python-course.eu/global_vs_local_variables.php
相关问题 更多 >
编程相关推荐