import sys
print(sys.platform)
print(2**100)
raw_input()
Python 3.1 を使用していますがraw_input
、dos ポップアップを「フリーズ」することができません。私が読んでいる本はPython 2.5用で、私はPython 3.1を使用しています
これを修正するにはどうすればよいですか?
import sys
print(sys.platform)
print(2**100)
raw_input()
Python 3.1 を使用していますがraw_input
、dos ポップアップを「フリーズ」することができません。私が読んでいる本はPython 2.5用で、私はPython 3.1を使用しています
これを修正するにはどうすればよいですか?
Python 3 以降、raw_input()
に名前が変更されましたinput()
。
これは Python 3.x および 2.x で機能します。
# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))
他の人が指摘したように、raw_input
関数はinput
Python 3.0 で名前が変更されました。実際には、より最新の本の方が適していますが、スクリプトの出力を表示するより良い方法があることを指摘したいと思います。 .
あなたの説明から、あなたは Windows を使用していて、.py
ファイルを保存してから、それをダブルクリックして実行していると思います。ポップアップする端末ウィンドウは、プログラムが終了するとすぐに閉じるため、プログラムの結果がどうなったかはわかりません。これを解決するために、あなたの本ではraw_input
/input
ステートメントを追加して、ユーザーが Enter キーを押すまで待機することを推奨しています。ただし、これまで見てきたように、プログラムのエラーなどで何か問題が発生した場合、そのステートメントは実行されず、何が問題なのかを確認できないままウィンドウが閉じます。コマンド プロンプトまたは IDLE を使用する方が簡単な場合があります。
Python プログラムを含むフォルダー ウィンドウを見ているときに、Shift キーを押しながら、ウィンドウの白い背景領域の任意の場所を右クリックします。ポップアップするメニューには、「コマンド ウィンドウをここで開く」というエントリが含まれている必要があります。(これは Windows Vista と Windows 7 で動作すると思います。) これにより、次のようなコマンド プロンプト ウィンドウが開きます。
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Weeble\My Python Program>_
プログラムを実行するには、次のように入力します (スクリプト名を置き換えます)。
python myscript.py
...Enter キーを押します。(「python」が認識されたコマンドではないというエラーが発生した場合は、http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96を参照してください) プログラムの実行が終了すると、正常に終了したかどうかにかかわらず、ウィンドウ開いたままになり、別のコマンドを入力するためにコマンド プロンプトが再び表示されます。プログラムをもう一度実行したい場合は、毎回ファイル名を入力するのではなく、上向き矢印を押して前に入力したコマンドを呼び出し、Enter キーを押して再度実行することができます。
IDLE は、Python と共にインストールされる単純なプログラム エディターです。他の機能の中でも、ウィンドウ内でプログラムを実行できます。ファイルを右クリックし、[ .py
IDLE で編集] を選択します。プログラムがエディターに表示されたら、F5 キーを押すか、[実行] メニューから [モジュールの実行] を選択します。プログラムは、プログラムの終了後も開いたままのウィンドウで実行され、Python コマンドを入力してすぐに実行できます。
Timmerman のソリューションは、コードを実行するときにうまく機能しますが、pyflakes または同様のリンターを使用するときにエラーが発生したくない場合はUndefined name
、代わりに次を使用できます。
try:
import __builtin__
input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
pass
これは、py2/3 に依存しない環境で実行したくないスクリプトに挿入したコードの一部です。
# Thank you, python2-3 team, for making such a fantastic mess with
# input/raw_input :-)
real_raw_input = vars(__builtins__).get('raw_input',input)
これで、real_raw_input を使用できます。かなり高価ですが、短くて読みやすいです。通常、未加工の入力を使用すると (入力を待機するため) 時間がかかるため、重要ではありません。
理論的には、real_raw_input の代わりに raw_input を割り当てることもできますが、raw_input の存在をチェックし、それに応じて動作するモジュールがあるかもしれません。安全側にとどまるほうがよいでしょう。