我在Pycharm上使用python3。 我可以通过shift + control + R运行代码(快捷方式运行,相当于按下绿色三角形运行按钮) 要么 通过shift + alt + E运行代码,将代码加载到interactive shell debugging with 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
文档内联。
答案 0 :(得分:1)
按下Shift + Alt + E时,它进入Interactive 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