Python:一个非常简单的程序中的 NameError [重复]

问题描述 投票:0回答:1

我正在使用 for 循环制作一个超级简单的程序,它会询问你三次你的爱好,并将你的答案附加到一个名为爱好的列表中:

hobbies = []

for me in range(3):
    hobby=input("Tell me one of your hobbies: ")
    hobbies.append(hobby)

例如,如果我给它“编码”,它将返回:

Traceback (most recent call last):
  File "python", line 4, in <module>
  File "<string>", line 1, in <module>
NameError: name 'coding' is not defined

请注意,如果我使用 Python 2.7 并使用

raw_input
,则该程序可以完美运行。

python list for-loop append nameerror
1个回答
1
投票

在Python 2中,

input
评估给定的字符串,而
raw_input
将仅返回一个字符串。请注意,在 Python 3 中,
raw_input
已重命名为
input
,旧的
input
仅以
eval(input())
形式提供。

Python 2 中的示例:

In [1]: x = 2

# just a value
In [2]: x ** input("exp: ")
exp: 8
Out[2]: 256

# refering to some name within
In [3]: x ** input("exp: ")
exp: x
Out[3]: 4

# just a function
In [4]: def f():
   ...:     print('Hello from f')
   ...:

# can trigger anything from the outside, super unsafe
In [5]: input("prompt: ")
prompt: f()
Hello from f
© www.soinside.com 2019 - 2024. All rights reserved.