我正在玩一些Python代码并创建了一个无限循环:
y = 0
x = -4
itersLeft = x
while(itersLeft<0):
y = y + x
itersLeft = itersLeft - 1
print "y = ",y, "itersLeft = ", itersLeft
print y
Run Code Online (Sandbox Code Playgroud)
是否有键盘快捷键可以让我停止循环 - 允许我修复循环然后重新启动它?
我试过Ctrl+ C并没有任何运气.如果它有助于我使用Windows 7环境.
谢谢.
编辑
我还应该提到我正在使用Aptana Studio 3并试图在其中运行Ctrl+ C命令.它在那里不起作用 - 但在常规控制台中尝试它可以正常工作.我假设它必须是因为Aptana环境.
在Mac上的终端中使用python,输入
ctrl-z
Run Code Online (Sandbox Code Playgroud)
将停止python,但不退出它,给出如下输出:
>>>
[34]+ Stopped python
Run Code Online (Sandbox Code Playgroud)
如你所见,我已经停止了34次python调用.
虽然我可以使用
>>> exit()
Run Code Online (Sandbox Code Playgroud)
退出python,问题是:
在终端中是否有一个真正退出(而不仅仅是停止)python的短信?而且,为什么
CTRL-C
不起作用?
我如何杀死所有已停止的python?
顺便说一句,我怎么能用键盘外观输入'ctrl-c'和其他热键呢?
谢谢!
我有一个在无限循环上运行的脚本,并将数据添加到数据库中并执行我不能只停留一半的事情,所以我不能只按ctrl + C并停止它.
我希望能够以某种方式停止while循环,但让它在停止之前完成它的最后一次迭代.
让我澄清一下:
我的代码看起来像这样:
while True:
does something
does more things
does more things
Run Code Online (Sandbox Code Playgroud)
我希望能够在结束或开始时中断while循环,但不能在执行操作之间中断,因为这样会很糟糕.
如果我想继续,我不希望它在每次迭代后都问我.
感谢您的回答,我非常感激,但我的实施似乎并没有起作用:
def signal_handler(signal, frame):
global interrupted
interrupted = True
class Crawler():
def __init__(self):
# not relevent
def crawl(self):
interrupted = False
signal.signal(signal.SIGINT, signal_handler)
while True:
doing things
more things
if interrupted:
print("Exiting..")
break
Run Code Online (Sandbox Code Playgroud)
当我按下ctr + c时,程序就会一直无视我