2014-01-05 71 views
0

我是用一個for循環工作,使使用循環一個超級簡單的程序,要求你對你的愛好三次並追加你的答案列表叫愛好:的Python:NameError在一個非常簡單的程序

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相反,程序精美的作品。

回答

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 
相關問題