使用Wing IDE 101时,为什么KeyboardInterrupt不能在Python中工作?

时间:2016-07-20 01:14:31

标签: python python-2.7 keyboardinterrupt wing-ide

我尝试在循环中执行某些操作(在此示例中打印到100)并按下&c; Ctrl + C'随时取消计数。

我正在使用的测试代码如下,但是这不起作用(编辑:它在从终端启动的脚本中工作但在我的IDE的python shell中运行时不起作用 - Wing 101 )。 KeyboardInterrupt没有捕捉到' Ctrl + C'命令或任何其他键。

import time     

i = 1
while (i < 101):
    try:
        print '%d percent complete' % i
        time.sleep(0.5)
        i += 1
    except KeyboardInterrupt:
        break 

我已经阅读了这个问题here而且我很确定这不是我的问题,因为我已经把#time; time.sleep(0.5) &#39;命令进入以减慢程序速度。我也读过this question但是现在已经5岁了,我现在假设这个错误已经解决了吗?我知道我可以使用线程来实现我想要的,但是如果仅仅是为了学习我想知道为什么这种方法不起作用。

我在Ubuntu 14.04中使用python 2.7.6,并且我非常感谢您在解决此问题时提供的任何帮助或建议。 (编辑:我知道代码是孤立的,但我仍然有兴趣知道它为什么不能在Wing 101 IDE的python shell中工作)

编辑1

我已经尝试将while循环放在try块中,如下所示:

try:
    i = 1
    while (i < 101):        
        print '%d percent complete' % i
        time.sleep(0.5)
        i += 1
except KeyboardInterrupt:
    break 

但不幸的是,这也不起作用,而是我收到以下错误:

Traceback (most recent call last):
  File "/home/matt/autosys_repo1/python_test_scripts/test_refresh_line.py", line 13, in <module>
    break
'break' outside loop: <string>, line 13

1 个答案:

答案 0 :(得分:0)

这是Wing IDE 101的限制。停止这样的循环的唯一方法是重新启动shell。