Python NameError, variable 'not defined'

前端 未结 3 766
梦谈多话
梦谈多话 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:39

    When you declare it inside function they are only available in that function scope, so declare global variables outside functions and code will work fine.

    import random
    import time
    
    guess = None
    random_num = None
    lives = 3
    win = False
    
    
    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()
    

    And now this works fine. For more info about gloval vs local variables you can read: http://www.python-course.eu/global_vs_local_variables.php

提交回复
热议问题