2017-12-09 17 views
0

入力値を取得して変数に保存しています。このようなエラーメッセージが表示されます。ここに私のコードは次のとおりです。Pycharm 2017.3と入力関数

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を個別にインストールしませんでした。このエラーが発生している理由についてのアドバイスはありますか?

+1

Python 2で 'input'を使用しないでください。代わりに 'raw_input'を使用してください。 – chepner

答えて

3

input()への呼び出しがあなたが入力したものを評価しようとしているため、そのエラーメッセージが表示されるため、Python 2を使用しています。その名前の変数を探していて、それを見つけられません。代わりに電話をraw_input()に変更することができます。これは入力を評価しようとしません。 これはあなたの問題を解決します。

実行しているPythonのバージョンを確認するには、端末シェル内に「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を実行していると言えるでしょう。

関連する問題