Pycharm 2017.3和输入功能

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

我正在获取输入值并将其保存在变量中。并且出现错误消息。这是我的代码:

    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。任何有关此错误发生的建议?

python pycharm
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.