Python 3键盘中断错误

xtupzzrd  于 2023-06-25  发布在  Python
关注(0)|答案(2)|浏览(185)

我注意到,在任何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的错误将是键盘中断是有办法阻止这从崩溃的程序?
我想这样做的原因是因为我喜欢使我的程序防错,每当我想粘贴一些东西到输入,我不小心按下CTRL C我必须再次通过我的程序。这只是非常烦人。

at0kjp5o

at0kjp5o1#

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 upset_users_while_getting_input(prompt):
    while True: # broken by return
        try:
            return input(prompt)
        except KeyboardInterrupt:
            print("you are not allowed to quit right now")

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

9jyewag0

9jyewag02#

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

if test.isupper == True:
  print("Hello!")

相关问题