【问题标题】:Break outside a loop, return outside a function - iPython Notebook在循环外中断,在函数外返回 - iPython Notebook
【发布时间】:2016-11-08 02:40:33
【问题描述】:

我有一个 iPython 笔记本,其中包含一些代码块,我希望能够在它执行时有机会在某些点停下来。

代码从 API 下载查询,并在第一次返回时确定最大行数以及它是否包含采样数据。

根据它是否有采样数据,以及在多大程度上,我希望选择在 while 循环之前停止代码,这将迭代下载完整的数据集。

我的'break'代码如下:

print "Contains sampled data? " + str(metadata["containsSampledData"])

print "Break query? -> Y"
bi = raw_input()
if bi == "Y":
    break

我尝试了 return 和 break,它们都给出了错误(尽管它们确实停止了代码)。此外,我已经厌倦了 quit() 但是我不想重置内核并重新导入模块/创建变量。

有什么方法可以在循环之外而不是在函数内停止代码而不退出实例?

【问题讨论】:

  • 您想在不退出程序的情况下停止执行代码吗?
  • 是的,没错
  • 我认为你必须使用循环。他们有什么问题?
  • 问题是,在第一次调用 API 之前,我不确定要下载多少。我可以尝试重新编写我的代码,但是在其他情况下这会很有用。

标签: python-2.7 ipython break


【解决方案1】:

我认为你需要重新思考和重写程序的逻辑。

print "Contains sampled data? " + str(metadata["containsSampledData"])

while True:
    # Check the condition with your API stuff here
    # and exit or ask everytime if the condition is true as shown below
    print "Break query? -> Y"
    bi = raw_input()
    if bi == "Y":
        break 

# Continue executing your code here.

另一种选择是使用 sys.exit() 就像您已经尝试过的那样,但它会退出程序。

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2020-03-06
    • 2015-03-07
    • 2011-01-28
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多