我正在获取输入值并将其保存在变量中。并且出现错误消息。这是我的代码:
input_id = input("your id please")
members = ['egoing', 'k8805']
for member in members:
if member == input_id:
print("hellop"+member)
,这是错误消息
/Python_Workspace/PycharmProjects/Practice/venv/bin/python /Python_Workspace/PycharmProjects/Practice/Container_Loop/4.py
your id pleaseegoing
Traceback (most recent call last):
File "/Python_Workspace/PycharmProjects/Practice/Container_Loop/4.py", line 1, in <module>
input_id = input("your id please")
File "<string>", line 1, in <module>
NameError: name 'egoing' is not defined
Process finished with exit code 1
许多其他人提出类似的问题,许多答案突出显示了raw_input和输入函数及其在版本更改后的作用。 我刚刚启动python并且目前正在使用pycharm 2017.3并且没有在我的mac中单独安装python。任何有关此错误发生的建议?
答案 0 :(得分:3)
您正在使用Python 2,因为对input()
的调用正在尝试评估您输入的内容,这就是您看到该错误消息的原因。它正在寻找具有该名称的变量,而不是找到一个变量。您可以将呼叫更改为raw_input()
,而不会尝试评估您的输入。
这将解决您的问题。
将来,如果你想看看你正在运行的python版本,只需在终端shell中输入python
,它会在顶部弹出一些信息。例如,当我在Mac上运行Py2时,我看到:
g$ python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 12:01:12)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
所以我知道我正在运行Py 2.7。
此外,Py2和Py3之间存在变化。在Py2中,有raw_input()
和input()
。两者都读入一个字符串,但input()
计算字符串,期望字符串是某个全局项的名称,如函数或变量。
在Py3中,事情发生了变化,而Py3的input()
只是Py2的raw_input()
。所以,因为你对input()
的调用试图评估输入的字符串,我可以告诉你正在运行Py2。