当前位置:  开发笔记 > 编程语言 > 正文

为什么KeyboardInterrupt在python中不起作用?

如何解决《为什么KeyboardInterrupt在python中不起作用?》经验,为你挑选了2个好方法。

为什么不像以下代码一样捕获CTRL-C?

MAXVAL = 10000
STEP_INTERVAL = 10

for i in range(1, MAXVAL, STEP_INTERVAL):
    try:
        print str(i)
    except KeyboardInterrupt:
        break

print "done"

我的期望是 - 如果在程序运行时按下CTRL-C,KeyboardInterrupt则应该离开循环.它不是.

对我做错的任何帮助?



1> 小智..:

听起来这个程序是在时间控制-c被击中的情况下完成的,但是你的操作系统还没有完成显示所有的输出..



2> nosklo..:

代码流程如下:

    for从列表中获取新对象(由...生成range)并设置i为它

    try

    print

    回去吧 1

如果在第1部分中按CTRL-C,它就在try/ 之外except,因此它不会捕获异常.

试试这个:

MaxVal = 10000
StepInterval = 10

try:
    for i in range(1, MaxVal, StepInterval):
        print i
except KeyboardInterrupt:
    pass

print "done"

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有