2016-08-12 14 views
1

私はpython3でPycharmにいます。 Shift + Ctrl + R(実行のショートカット、緑色の三角形の実行ボタンを押すのと同じ) または Shift + Alt + Eでコードを実行してコードをPythonコンソールにロードすると、interactive shell debugging with pycharmPycharm:Pythonコンソールで実行と実行の動作が異なりますか?

shift + control + Rはエラーを発生させません。

シフト+ ALT + Eは例外をスロー:

TypeError: an integer is required (got type str) 

私は実行コードを以下のように:

import sys 

sys.exit('exist') 

print('shouldnt print') 

私は別の行動とどのように私はこれを避けることができるの原因を理解したいです。コードはpython3のドキュメントsys.exitのインラインです。

答えて

1

Shift + Alt + Eを押すと、Interactiveシェルに入ります。 sys.exit()は、対話型シェルなどのIDLEアプリケーションでは機能しません。 IDLEアプリケーションでは、組み込みのos._exit()が代わりに使用されます。

あなたが密接にスタックトレースを調べると、あなたはこの動作に気づくでしょう:

Traceback (most recent call last): 
    File "<input>", line 4, in <module> 
    File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevconsole.py", line 260, in DoExit 
    os._exit(args[0]) 

TypeError: an integer is required 

os._exit()は、(代わりにsys.exit("exist")の)実行され、それが引数としてのみ整数を受け取ります。ここでドキュメントを確認してください:https://docs.python.org/2/library/os.html#os._exit

+0

どうすればIDLEアプリケーションで動作するのか分かりませんか?リストをフィルタリングするときに同様の問題が発生しました。 – Lisa

+0

@Lisa、他の例外があるかどうかはわかりません。しかし、あなたがSOに問題を投稿すると、多分誰かが見て答えを取ることができます。 –

関連する問題