为什么我从 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 将函数名改为inputinput 的 Python 2 版本执行 eval(raw_input(prompt)),因此当您只想获取字符串 "yes" 时,它试图实际访问一个名为 yes 的变量.

Python 2 Docs