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

Jeremiah Tammilton
Jeremiah Tammilton
1,355 Points

Is the code of the video wrong?

When downloading the project zip, there is a mistake when trying to play again, got:Traceback (most recent call last): File "number_game.py", line 33, in <module> game() File "number_game.py", line 27, 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

Also, when entering something that isn't a number, got: Traceback (most recent call last): File "number_game.py", line 33, in <module> game() File "number_game.py", line 12, in game guess = int(input("Guess a number between 1 and 10: ")) File "<string>", line 1, in <module> NameError: name 'd' is not defined

What is wrong?

2 Answers

Anibal Marquina
Anibal Marquina
7,913 Points

Hi Jeremai Apparently, the except statement in the try block is failing. Specifically the format() method. Try removing it as in the code below....

import random


def game():
    secret_num = random.randint(1, 10)
    guesses = []

    while len(guesses) < 5:
        try:
            guess = int(input("Guess a number between 1 and 10: "))
        except ValueError:
             print("That isn't a number,  you must guess a number!") #------>Change the print argument 
            #print("{} that isn't a number!".format(guess)) ------> Coment this out 

        else:
             if guess == secret_num:
                print("You got it! My number was {}".format(secret_num))
                break
            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("Bye!")


game()
Valeria Brigatti
Valeria Brigatti
20,820 Points

I got the same error. I did the correction you suggests but it still doesn't work.

Traceback (most recent call last): File "number_game.py", line 34, in <module> game() File "number_game.py", line 28, 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