为什么我从 input() 得到 "NameError"?
Why am I getting "NameError" from input()?
我是新手,正在尝试创建一个简单的“猜数字游戏”:
import random
class Randgame :
def __init__(self):
pass
def restart(self):
response = input("Type Yes To Play Again!").lower()
if response == "yes":
self.play()
else:
print("Thanks for playing!")
pass
def play(self):
guess = int(input("What's your guess?"))
num = random.randint(0, 10)
if guess == num:
print("Correct!")
else:
print("Nope!")
self.restart()
fun = Randgame()
fun.play()
在我进入 restart() 方法之前一切都很好。如果我在控制台中输入“是”,我会得到这样的回应:
NameError: name 'yes' is not defined
我想不出这个来挽救我的生命,我不知道要查找什么。请帮忙!
在 Python 2 中,获取纯文本输入是通过 raw_input
而不是 input
完成的。 Python 3 将函数名改为input
。 input
的 Python 2 版本执行 eval(raw_input(prompt))
,因此当您只想获取字符串 "yes"
时,它试图实际访问一个名为 yes
的变量.
我是新手,正在尝试创建一个简单的“猜数字游戏”:
import random
class Randgame :
def __init__(self):
pass
def restart(self):
response = input("Type Yes To Play Again!").lower()
if response == "yes":
self.play()
else:
print("Thanks for playing!")
pass
def play(self):
guess = int(input("What's your guess?"))
num = random.randint(0, 10)
if guess == num:
print("Correct!")
else:
print("Nope!")
self.restart()
fun = Randgame()
fun.play()
在我进入 restart() 方法之前一切都很好。如果我在控制台中输入“是”,我会得到这样的回应:
NameError: name 'yes' is not defined
我想不出这个来挽救我的生命,我不知道要查找什么。请帮忙!
在 Python 2 中,获取纯文本输入是通过 raw_input
而不是 input
完成的。 Python 3 将函数名改为input
。 input
的 Python 2 版本执行 eval(raw_input(prompt))
,因此当您只想获取字符串 "yes"
时,它试图实际访问一个名为 yes
的变量.