2016-04-29 14 views
2

私はPythonを初めて使い、小さなテストゲームを作ろうとしていますが、CMDでプログラムを実行すると、このエラーが発生します。PythonコードはCMDでは動作しませんが、IDLEで動作しますか?

What Is Your Name? 
Test 
Traceback (most recent call last): 
    File "C:\Users\User\Documents\Python Games\Test.py", line 2, in <module> 
    myName = input() 
    File "<string>", line 1, in <module> 
NameError: name 'Test' is not defined 

これはIDLEでうまく動作しますが、これがコードの先頭です。

print('What Is Your Name?') 
myName = input() 
print('Hello '+str(myName)+' It is good to meet you!') 
+0

IDLEをpython3から使用しているようですが、スクリプトはpython2を使用しています。 Python2では 'raw_input()'を使う必要があります。 – Barmar

+0

私はPython 3を使用しています。私はraw_input()を置くとき、定義されていないと言います。 – 0Bennyman

+0

それは正しいです。 Python 3では、 'input()'はPython 2でraw_input()がしたことを行います。スクリプトがPython 3を使って実行されていることを確認する必要があります。 – Barmar

答えて

2

その理由は、Pythonのバージョンが変更されたためです。おそらく、2つのパイソンがインストールされているでしょう。 Python2.xはPATHにあります。そしてあなたはPython 3.x IDLEを持っています。

NameError: name 'Test' is not definedmyName = raw_input()へのPythonの2.xのため

変更myName = input()です。

そして、それは、Python 2.xで

を働くだろうあなたのIDLEのバージョンはraw_input()がないのpython 3.xのでなければなりません。

+0

間違えてPython 2を使用していましたが、Python 3に行くためのパスを変更しなければなりませんでした。 – 0Bennyman

+0

@ 0ベニーマンはそれが助けて良かったです。 –

0

説明はPython 2.xとPythonの3.xの間にあったいくつかの変更などがあり

input機能の変更の1つです。

Python 2では、input関数は、ユーザーが入力しているものを評価します。この関数は、ユーザーが数値を入力する必要がある場合に使用されます。解析され、戻り値がinputの変数は数値型(floatまたはint)になります。あなたのケースでは

https://docs.python.org/2/library/functions.html#input

、ユーザーの名前は、おそらく数ではなく、あなたは、Python 2で作業している場合は、文字列として、ユーザの入力を返す機能raw_inputを使用する必要がありますので、解析することなく。つまり、ユーザーが数値を入力すると、この数値を含むStringが返されます。セキュリティ上の理由から

https://docs.python.org/2/library/functions.html#raw_input

関数は入力を評価し、それはキャストせずに数字を解析するための非常に便利ですが、それは注入することも、ユーザーを可能にするので、Pythonの2のinput機能を使用することをお勧めしませんアプリケーションに悪意のあるコード;)

>>> print str(input("Enter your name: ")) 
Enter your name: __import__('os').listdir('.') 
['super_secret.txt'] 

したがって、入力機能は、Python 3にraw_input機能により置換されているとraw_input機能が除去されています。

修正は

私は、お使いのOSのデフォルトの動作は、あなたがpythonを実行したいときpython2を呼び出すことだと思います。(それはおそらく他のディストリビューションでも同じですhttps://docs.python.org/3.3/using/windows.html#python-launcher-for-windows

PY -3 Ubuntuで

  • :Windows上

    • を:あなたはpython3を実行したいのであれば、あなたは明示的にそれを言わなければなりません):

      のpython3

    IDEがpython3をデフォルトインタープリタとして使用するように正しく設定されているようです。

  • 関連する問題