Pycharm:在Python控制台中运行和运行之间的不同行为?

问题描述:

我在Pycharm上用python3。 我可以通过shift + control + R(快捷方式运行,相当于按下绿色三角运行按钮)运行代码 或 运行代码shift + alt + E将代码加载到由interactive shell debugging with pycharm建议的Python控制台中Pycharm:在Python控制台中运行和运行之间的不同行为?

shift + control + R不给出错误。

SHIFT + ALT + E抛出异常:

TypeError: an integer is required (got type str) 

我运行的代码如下:

import sys 

sys.exit('exist') 

print('shouldnt print') 

我想了解是什么原因导致不同的行为,我怎么能避免这种情况。该代码与python3的sys.exit文档内联。

当按下Shift + Alt + E时,它进入交互式shell。 sys.exit()不适用于IDLE应用程序,如Interactive Shell。对于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上,也许有人可以看一看并回答。 –