Python Python Basics (2015) Number Game App Number Game Refinement

Nathaniel Bennett
Nathaniel Bennett
5,464 Points

Why isn't my play-again running correctly? When I enter 'n', I get a NameError claiming that 'n' is not defined.

Here is my code:

    play_again = input("Do you want to play again? Y/n ")
    if play_again.lower() != 'n':
        game()
    else:
        print("goodbye")

game()

Here is my error:

Do you want to play again? Y/n n Traceback (most recent call last): File "number_game.py", line 36, in <module> game() File "number_game.py", line 30, in game play_again = input("Do you want to play again? Y/n ") File "<string>", line 1, in <module> NameError: name 'n' is not defined

1 Answer

Ramon Berke
Ramon Berke
637 Points

If you add the code i can help you

Nathaniel Bennett
Nathaniel Bennett
5,464 Points
import random 

def game():
    #generate a random number between 1 and 10
    secret_num = random.randint(1,10)
    guesses = []

    #Limit the number of guesses
    while len(guesses) < 5: 
        try:
            #get a number guess from the player
            guess = int(input("Guess a number between 1 and 10: "))
        except ValueError: 
            #Safely make an int
            #Catch when someone submits a non-integer
            ("{} isn't a number".format(guess))
        else:
            #compare guess to secret number
            if guess == secret_num:
                print("You got it! My number was {}".format(secret_num))
                break
            #print hit/miss
            elif guess < secret_num:
                print("My number is higher than {}".format(guess))
            else:
                print("My number is lower than {}".format(guess))
            guesses.append(guess)
    else:
        print("You didn't get it. My number was {}".format(secret_num))
    play_again = input("Do you want to play again? Y/n ")
    if play_again.lower() != 'n':
        game()
    else:
        print("goodbye")

game()