Python NameError, variable 'not defined'

前端 未结 3 764
梦谈多话
梦谈多话 2020-12-12 04:12

the error it returns is:

NameError: name \'lives\' is not defined

I know the code isn\'t as efficient as possible, this is one of my first

3条回答
  •  攒了一身酷
    2020-12-12 04:40

    You need to define the variable "lives" outside of the function main, then any function where you want to reference that global variable you say "global lives." When you are in a function and assign a value to a variable, it assumes it is in the local scope. using "global lives" tells that function to look to the global scope as the reference of lives.

    import random
    import time
    
    lives = 10
    win = False
    guess = 0
    rand_num = 45
    
    def main():
        global guess, rand_num, lives, win
        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 guess, rand_num, 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()
    

提交回复
热议问题