停止升华文本执行无限循环

2024-06-16 14:23:31 发布

您现在位置:Python中文网/ 问答频道 /正文

当我做一些像

while True:
    print('loop')

以崇高的姿态执行代码,我无法阻止它。我必须手动终止进程并重新启动sublime。

有没有一种方法可以设置某种'max_execution_time'或任何其他解决方法,让我们能够很好地停止这种情况?


Tags: 方法代码looptruetime进程情况手动
3条回答

要使用Ctrl+Break。有关您自己的信息,只需在Sublime Text中的工具下查看,您将看到Cancel Build和上面的热键。对于无限循环,它会工作得很好。可以说,我也经历过同样的事情!;)


对于Windows用户,没有Break键,所以进入Preferences>;键绑定并更改行

{ "keys": ["ctrl+break"], "command": "cancel_build" }

到另一个快捷键,如Ctrl+Alt+B

你有几个选择。 您可以设置大量的最大迭代次数(实际上,在完全调试完代码之前,我对大多数while循环都是这样做的,以避免无限的循环痛苦): 例如

max_iterations = 100000000
while i < max_iterations:
   print("Hello World")

另一种方法是使用时间模块来像这样计时代码的执行时间

import time
max_execution_time = 10000000 #this will be in seconds
start_time = time.clock()
elapsed_time = 0   
while elapsed_time < max_execution_time:
    elapsed_time = time.clock() = start_time
    #Your loop code here

对我(在Linux上)来说,键盘上没有break键,这个快捷键以某种方式绑定到了不同的组合:ctrl+alt+c

您可以在Tools菜单中找到它的绑定位置:

enter image description here

中断脚本后,您应该会看到文本[Cancelled]被打印到submitext控制台。

相关问题 更多 >