简体   繁体   中英

NameError: name is not defined in Python code

Trying my first Python game with Python 3.6. Have tried several IDEs including Geany, and Wing Personal.

The error is:

Traceback (most recent call last): File "game1.py", line 7, in myName = input() File "", line 1, in

 #This is a guess the numbers game.
import random

guessesTaken = 0

print("Hello! What is your name?")
myName = input()

number = random.randint(1, 20)
print("Well, " + myName + ", I am thinking of a number between 1 and 20.")

while guessesTaken < 6:
    print("Take a guess.")
    guess = input()
    guess = int(guess)

    guessesTaken = guessesTaken + 1

    if guess < number:
        print("Your guess is too low.")

    if guess > number:
        break

    if guess == number:
        guessesTaken = str(guessesTaken)
        print("Good job, " + myName + "! You guesses my number in " +     guessesTaken + " guesses!")

    if guess != number:
        number = str(number)
        print("Nope. The number I was thinking of was " + number)

This code has multiple indentation errors. Indentation generally means four spaces or one tab character. So, the code inside each if-else condition should be indented by one level.

Also, in one of the conditions:

if guess > number:
break

What do you expect that to do? Break is used to stop the loops. I guess you want to exit the program for this particular case. For that you can use return 0 or sys.exit() .

Here is the code, properly indented:

#This is a guess the numbers game.
import random
import sys
guessesTaken = 0

print("Hello! What is your name?")
myName = input()

number = random.randint(1, 20)
print("Well, " + myName + ", I am thinking of a number between 1 and 20.")

while guessesTaken < 6:
    print("Take a guess.")
    guess = input()
    guess = int(guess)

    guessesTaken = guessesTaken + 1

if guess < number:
    print("Your guess is too low.")

if guess > number:
    sys.exit()

if guess == number:
    guessesTaken = str(guessesTaken)
    print("Good job, " + myName + "! You guesses my number in " +     guessesTaken + " guesses!")

if guess != number:
    number = str(number)
    print("Nope. The number I was thinking of was " + number)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM