Problem running a Python program, error: Name 's' is not defined [duplicate]
Here's my code:
#This is a game to guess a random number.
import random
guessTaken = 0
print("Hello! What's your name kid")
myName = input()
number = random.randint(1,20)
print("Well, " + myName + ", I'm thinking of a number between 1 and 20.")
while guessTaken < 6:
print("Take a guess.")
guess = input()
guess = int(guess)
guessTaken = guessTaken + 1
if guess < number:
print("You guessed a little bit too low.")
if guess > number:
print("You guessed a little too high.")
if guess == number:
break
if guess == number:
guessTaken = str(guessTaken)
print("Well done " + myName + "! You guessed the number in " + guessTaken + " guesses!")
if guess != number:
number = str(number)
print("No dice kid. I was thinking of this number: " + number)
This is the error I get:
Name error: Name 's' is not defined.
I think the problem may be that I have Python 3 installed, but the program is being interpre开发者_运维知识库ted by Python 2.6. I'm using Linux Mint if that can help you guys help me.
Using Geany as the IDE and pressing F5 to test it. It may be loading 2.6 by default, but I don't really know. :(
Edit: Error 1 is:
File "GuessingGame.py", line 8, in <Module>
myName = input()
Error 2 is:
File <string>, line 1, in <Module>
When you enter data for input()
in Python 2, you're entering a Python expression. Whatever you're typing
Looks like an expression -- not a literal.
Has an S in it (hence the undefined variable.)
Either
put your strings in quotes or
stop using
input()
and useraw_input()
stop using Python 2.6.
It's not clear what "I have Python 3 installed, but the program is being interpreted by Python 2.6." means. If it's installed, why isn't it being used? What's wrong with your PATH?
If you want to run this in Python 2, you will have to replace the calls to input()
with raw_input()
.
Simple fix. Change your input to raw_input and off you go. For example:
myName = raw_input("Hello! What's your name kid? ")
Check out the Python documentation for more details, but you want to avoid using input as it's attempting to eval() what is returned;
Warning
This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
精彩评论