如果输入等于字符串,则执行Python 3不工作的操作

如果输入等于字符串,则执行Python 3不工作的操作,python,string,python-3.x,input,Python,String,Python 3.x,Input,我最近正在创建一个文本冒险游戏,但几乎马上就遇到了输入问题。当我使用字符串而不是整数时,它会给我错误消息。这可能是一个显而易见的原因,我只是没有看到它 下面是一个例子: b = input("Do you like video games? y/n") if b == "y": print("Good For You!") if b == "n": print("What!? (Just joking)") 我做了很多研究,这似乎对其他大

我最近正在创建一个文本冒险游戏,但几乎马上就遇到了输入问题。当我使用字符串而不是整数时,它会给我错误消息。这可能是一个显而易见的原因,我只是没有看到它

下面是一个例子:

    b = input("Do you like video games? y/n")
    if b == "y":
        print("Good For You!")
    if b == "n":
        print("What!? (Just joking)")
我做了很多研究,这似乎对其他大多数人都有效。但当我使用它时,我会得到以下错误:

    Do you like video games? y/ny
    Traceback (most recent call last):
      File "/home/ubuntu/workspace/Test.py", line 1, in <module>
        b = input("Do you like video games? y/n")
      File "<string>", line 1, in <module>
    NameError: name 'y' is not defined
你喜欢电子游戏吗?y/纽约
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/workspace/Test.py”,第1行,在
b=输入(“你喜欢电子游戏吗?是/否”)
文件“”,第1行,在
名称错误:未定义名称“y”

如你所见,它说y没有定义。我对基本的python编程没问题,但我对读取错误消息很糟糕。如果你们能给我一个答案就太好了。谢谢大家!

使用
input
函数产生的错误是Python 2的典型错误,而不是Python 3的典型错误。我怀疑您实际上在使用Python 2

要确定使用
python
命令时运行哪个版本的python,请执行以下操作:

$ python --version
# example output: Python 2.7.3
要确保使用python 3运行脚本,请执行以下操作:

$ python3 scriptname.py

Python 2 在Python2中,要获取用户输入,实际上需要使用函数,因为函数试图像Python代码一样评估用户的输入

因此,当用户输入
'y'
时,
input
函数随后尝试计算表达式
y
,在本例中,该表达式表示名为
y
的变量,该变量不存在

因此,对于python 2,您的代码应该如下所示:

b = raw_input("Do you like video games? y/n")
# etc

Python 3
在Python3中,该函数取代了
raw_input
,因此您的代码可以按原样工作。

使用
input
函数的错误是Python2的典型错误,而不是Python3的典型错误。我怀疑您实际上在使用Python 2

要确定使用
python
命令时运行哪个版本的python,请执行以下操作:

$ python --version
# example output: Python 2.7.3
要确保使用python 3运行脚本,请执行以下操作:

$ python3 scriptname.py

Python 2 在Python2中,要获取用户输入,实际上需要使用函数,因为函数试图像Python代码一样评估用户的输入

因此,当用户输入
'y'
时,
input
函数随后尝试计算表达式
y
,在本例中,该表达式表示名为
y
的变量,该变量不存在

因此,对于python 2,您的代码应该如下所示:

b = raw_input("Do you like video games? y/n")
# etc

Python 3
在Python3中,函数代替了原始输入,因此代码可以按原样工作。

不幸的是,您实际上使用的是Python2,而不是3。由于在Python2中使用的是
input()
input()
实际上是在计算表达式,而不是Python3与Python2的
raw\u input()
等价
input()
在本例中,未能找到名为
y
(输入)的变量,并引发错误

只需将Python版本从2.x更改为3.x,就可以了。如果您坚持使用Python 2,请使用
raw\u input()

b = raw_input("Do you like video games? y/n")

不幸的是,您实际上使用的是Python 2,而不是Python 3。由于在Python2中使用的是
input()
input()
实际上是在计算表达式,而不是Python3与Python2的
raw\u input()
等价
input()
在本例中,未能找到名为
y
(输入)的变量,并引发错误

只需将Python版本从2.x更改为3.x,就可以了。如果您坚持使用Python 2,请使用
raw\u input()

b = raw_input("Do you like video games? y/n")

你没有像你想象的那样使用Python3。你确定你在使用Python3吗?对我来说,只有在我用Python 2运行您的代码时,才会出现此错误。如果您试图在linux上运行代码,请确保使用
python3 Test.py
从或的最终可能副本运行它……您在Python 3上的情况与您想象的不同。您确定要使用Python 3吗?对我来说,只有在我用Python 2运行您的代码时才会出现此错误。如果您试图在linux上运行代码,请确保使用
python3 Test.py
从或的最终可能副本运行它。。。