11

我注意到,在任何 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 时,我必须再次通过我的程序......这很烦人。

4

2 回答 2

17

Control-CKeyboardInterrupt无论你多么不想要它,都会提高。但是,您可以很容易地处理该错误,例如,如果您想要求用户在获取输入时按两次 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 user_input(prompt):
    while True: # broken by return
        try:
            return input(prompt)
        except KeyboardInterrupt:
            print("you are not allowed to quit right now")

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

于 2016-06-17T20:14:49.833 回答
-2

另外,在你的程序中,如果有人输入“Hello”,它不会回复你好,因为第一个字母是大写的,所以你可以使用:

if test.isupper == True:
  print("Hello!")
于 2021-08-27T12:12:20.427 回答