1

我正在运行以下代码(来自 Al Sweigart 的“Python:自动化无聊的东西”一书中的示例):

import sys

while True:
    print('Type exit to exit')
    response = input()
    if response == 'exit':
        sys.exit()
    print('You typed ' + response + '.')

当程序使用 PyCharm 运行时,如果响应为“exit”,则程序以消息“Process finished with exit code 0”结束。如果我理解正确,这意味着程序按预期工作并且没有错误。

但是,如果代码是在mu编辑器中执行的(书中推荐使用)

Traceback (most recent call last):
  File "c:\users\nelly\mu_code\chapter2.py", line 7, in <module>
    sys.exit()
SystemExit
>>> 

---------- FINISHED ----------
exit code: 2 status: 0

据我了解,这意味着程序在正常模式下没有按预期完成工作。为什么退出代码不同?在这种情况下,对于 mu 编辑器来说,这是正常的消息吗?我需要更改 mu 编辑器的设置吗?

4

1 回答 1

0

我遇到了同样的问题 - MU(或 repl.it 上)上的 sys.exit() 将导致回溯。我的理解是错误是由于 MU 是 REPL 而不是 IDE。如果您使用终端或任何配置为运行 Python 的 IDE 运行程序,它将正确退出。有趣的是,当我深入研究 Python 时,sys.exit() 引发了系统退出异常。所以我的猜测是 MU 捕捉到了这个异常,因为没有什么可以真正“退出”。

于 2020-09-25T17:15:33.293 回答