首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3 KeyboardInterrupt错误

Python 3 KeyboardInterrupt错误
EN

Stack Overflow用户
提问于 2016-06-18 01:58:48
回答 2查看 46K关注 0票数 10

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

代码语言:javascript
复制
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键,我不得不浏览我的程序,again..Which是非常烦人的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-18 04:14:50

无论您多么不希望KeyboardInterruptControl-C都会抛出它。但是,您可以很容易地处理该错误,例如,如果您想要求用户按两次control-c以便在获取输入时退出,您可以这样做:

代码语言:javascript
复制
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多少次,您都可以这样做:

代码语言:javascript
复制
def user_input(prompt):
    while True: # broken by return
        try:
            return input(prompt)
        except KeyboardInterrupt:
            print("you are not allowed to quit right now")

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

票数 17
EN

Stack Overflow用户

发布于 2021-08-27 12:12:20

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

代码语言:javascript
复制
if test.isupper == True:
  print("Hello!")
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37887624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档