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
我怎么知道什么适用于IDLE应用程序,哪些不适用?筛选列表时遇到类似问题。 – Lisa
@Lisa,我不确定是否还有其他例外。但是,如果您将问题发布在SO上,也许有人可以看一看并回答。 –