如何在不终止程序的情况下终止其程序?

时间:2019-10-10 01:08:56

标签: python python-idle

我想知道如何结束我的程序而不会弹出一个标签,说我必须“杀死python”。我尝试了exit(),它可以工作,但是会弹出一个选项卡,并强迫我退出,这是我不想要的。这是我的代码:

if (answer == "no"):
    print("okay, goodbye")
    exit()
elif (answer == "yes"):
    print("great! let's continue talking")

question2 = input("What is your favorite food? ")

从本质上讲,我希望程序停止/结束而之后没有实际弹出消息,告诉我关闭选项卡;就像我只是希望它停止一样,就像我打印了一条语句一样。无论如何,我希望程序在用户选择“否”时停止,因为如果用户选择“是”,则将question2放在那里,但是在选择“否”并且在那里没有exit()之后,question2仍然显示。有关尝试修复的更好示例,我尝试了:

import time

if (answer == "no"):
    print("okay, goodbye")
    time.sleep(99999.9)

elif (answer == "yes"):
    print("great! let's continue talking")

question2 = input("What is your favorite food? ")

但是我发现这种方式很愚蠢,而且做错了方法。有什么功能类似于exit(),它可以完全停止程序而不会在之后弹出选项卡,告诉我关闭该选项卡?

当然未定义“答案”,因为我故意没有添加,因为我对此没有疑问。

1 个答案:

答案 0 :(得分:1)

退出Python程序的正确方法是使用raise SystemExit('message')import sys; sys.exit('message'),而不是到达代码结尾。该消息是可选的。没有弹出窗口。由于IDLE是一个学习和开发环境,所以IDLE本身不会退出。

quit()exit()函数不是常规的内置函数。可能是由站点模块添加的。它们仅用于在“ >>>”提示下进行交互使用。在常规的交互式python中,其效果是无条件退出python。在IDLE中,询问用户是否真的要杀死Shell窗口。由于IDLE是针对初学者的,因此它会尽力避免让用户意外退出。 (请注意,代码中的SystemExit不会退出IDLE。)

quit()和exit()不应在代码中使用。它们可能是NameErrors,或者如上所述,确切的效果可能取决于环境。