这是我的代码:
#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)
这是我得到的错误:
Name error: Name 's' is not defined.
我认为问题可能是我安装了Python 3,但Python 2.6正在解释该程序。我正在使用Linux Mint,如果这可以帮助你们帮助我。
使用Geany作为IDE并按F5进行测试。它可能默认加载2.6,但我真的不知道。 :(
修改 错误1是:
File "GuessingGame.py", line 8, in <Module>
myName = input()
错误2是:
File <string>, line 1, in <Module>
答案 0 :(得分:4)
在Python 2中输入input()
的数据时,您将输入Python表达式。无论你输入什么
看起来像一个表达式 - 不是文字。
中有一个S(因此是未定义的变量。)
要么
将字符串放在引号或
停止使用input()
并使用raw_input()
停止使用Python 2.6。
目前尚不清楚“我安装了Python 3,但Python 2.6正在解释该程序。”手段。如果已安装,为什么不使用它?您的PATH有什么问题?
答案 1 :(得分:1)
如果您想在Python 2中运行此功能,则必须将input()
的调用替换为raw_input()
。
答案 2 :(得分:0)
简单修复。将输入更改为raw_input,然后关闭。例如:
myName = raw_input("Hello! What's your name kid? ")
查看Python documentatio n以获取更多详细信息,但是您希望避免使用输入,因为它正在尝试eval()返回的内容;
警告
此功能对用户不安全 错误!它期望有效的Python 表达作为输入;如果输入是 没有语法上的有效,一个SyntaxError 将被提出。其他例外可能 如果在期间出现错误则被提出 评价。 (另一方面, 有时这正是你的意思 在编写快速脚本时需要 专家使用。)