gpt4 book ai didi

python - python 控制台中的 sys.exit

转载 作者:行者123 更新时间:2023-12-01 04:06:41 24 4
gpt4 key购买 nike

您好,我在 python 控制台中使用 sys.exit 时遇到问题。它与 ipython 配合得非常好。我的代码大致如下:

if name == "lin":
do stuff
elif name == "static":
do other stuff
else:
sys.exit("error in input argument name, Unknown name")

如果知道程序知道在 else 循环中跳转,它就会崩溃并给出错误消息。如果我使用 IPython 一切都很好,但如果我使用 Python 控制台,控制台会卡住,我必须重新启动它,这有点不方便。

我在 MAC 上使用 Python 2.7 和 Spyder。

有没有一种解决方法可以让代码在 Python 和 IPython 中以相同的方式工作?这是 spy 问题吗?

感谢帮助

最佳答案

不确定这就是您应该使用 sys.exit 的目的。该函数基本上只是抛出一个特殊异常 (SystemExit),Python REPL 无法捕获该异常。基本上它会退出 python,然后返回到终端 shell。 ipython 的 REPL 确实捕获 SystemExit。它显示消息,然后返回到 REPL。

您应该执行以下操作,而不是使用sys.exit:

def do_something(name):
if name == "lin":
print("do stuff")
elif name == "static":
print("do other stuff")
else:
raise ValueError("Unknown name: {}".format(name))

while True:
name = raw_input("enter a name: ")
try:
do_something(name)
except ValueError as e:
print("There was a problem with your input.")
print(e)
else:
print("success")
break # exit loop

关于python - python 控制台中的 sys.exit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com