IPython笔记本-提前退出手机

IPython笔记本-提前退出手机,python,ipython,ipython-notebook,Python,Ipython,Ipython Notebook,我想在IPython笔记本的早期以编程方式退出单元格退出(0),但是会杀死内核 正确的方法是什么?我不希望分割单元格或手动停止执行 这远不是“正确的”,但提前退出的一种方法是创建运行时错误。因此,与其使用exit(0)干净地从脚本中提前返回,还不如使用类似于 print(variable_to_query) () + 1 这将运行代码直到此时(完成打印语句),然后失败。稍微多一些“正确”选项: 这将使您摆脱除最坏尝试/之外的所有障碍 raise KeyboardInterrupt 一个更干净

我想在IPython笔记本的早期以编程方式退出单元格<代码>退出(0),但是会杀死内核

正确的方法是什么?我不希望分割单元格或手动停止执行

这远不是“正确的”,但提前退出的一种方法是创建运行时错误。因此,与其使用
exit(0)
干净地从脚本中提前返回,还不如使用类似于

print(variable_to_query)
() + 1
这将运行代码直到此时(完成打印语句),然后失败。

稍微多一些“正确”选项:

这将使您摆脱除最坏尝试/之外的所有障碍

raise KeyboardInterrupt
一个更干净的版本:

assert(False)
或者简单地说:

raise

如果你想省去几次击键。

我将从中重新发布我的答案,因为解决方案也应该适用于你的问题。它会

  • 退出时不杀死内核
  • 不显示完整回溯(在IPython shell中不使用回溯)
  • 不强迫您使用try/excepts巩固代码
  • 使用或不使用IPython,无需更改代码
只需将下面代码中的“exit”导入jupyter笔记本(IPython笔记本),调用“exit()”就可以了。它将退出并让您知道

 An exception has occurred, use %tb to see the full traceback.

 IpyExit 


要安静地停止当前电池和后续电池,请执行以下操作:

class StopExecution(Exception):
    def _render_traceback_(self):
        pass

raise StopExecution

你能解释一下原因吗?如果您决定在一个单元格中只运行一半代码,然后停止,我想您可能会引发一个异常,但我不确定这会起到什么作用。@andi:那是不正确的。我的问题是关于停止执行单个单元格,而不是退出整个笔记本!对不起,我被你的标题“退出牢房”弄糊涂了。马吕斯:这是一种发展战略。我仍然喜欢在单个单元格中一次性运行大量代码,但通常希望查询变量状态而不运行整个过程。我对IPN比较陌生,以前在通过命令行脚本进行开发时使用exit(0)来完成这项工作。@andi:你能解开副本吗?问题是它很混乱,你会得到一个回溯。找到一个安静地结束执行的解决方案会很好。与插入一些不存在的变量或键入0/0等任何其他错误有什么区别?没有区别。任意性如何在Kaggle内核笔记本中使用提前退出单元?@Shauryaair对不起,我还没有使用Kaggle,所以我不知道。没有什么内置方法可以做到这一点?这太完美了!非常简单和干净!非常干净,谢谢!现在我可以执行
def exit():raise StopExecution
class StopExecution(Exception):
    def _render_traceback_(self):
        pass

raise StopExecution