Python 3 KeyboardInterrupt错误

时间:2016-06-17 17:58:48

标签: python-3.x ctrl keyboardinterrupt

我注意到在任何python 3程序中,无论你按CTRL c它是多么基本,它会使程序崩溃,例如:

test=input("Say hello")
if test=="hello":
    print("Hello!")
else:
    print("I don't know what to reply I am a basic program without meaning :(")

如果你按下CTRL c,那么错误将是KeyboardInterrupt是否会阻止程序崩溃?

我想这样做的原因是因为我喜欢让我的程序有错误证明,每当我想把东西粘贴到输入中时我不​​小心按下CTRL c我必须再次通过我的程序..这只是很烦人。

1 个答案:

答案 0 :(得分:5)

control-c无论您多么不想要它,都会提升KeyboardInterrupt。但是,您可以非常轻松地处理错误,例如,如果您想要让用户按两次control-c以便在获取输入时退出,则可以执行以下操作:

def user_input(prompt):
    try:
        return input(prompt)
    except KeyboardInterrupt:
        print("press control-c again to quit")
    return input(prompt) #let it raise if it happens again

或强制用户输入内容,无论他们使用control-c多少次,您都可以执行以下操作:

def input_noQuit(prompt):
    while True: #broken by return
        try:
            return input(prompt)
        except KeyboardInterrupt:
            print("you are not allowed to quit right now")

虽然我不推荐第二个,因为使用快捷方式的人会很快对你的程序感到恼火。