【问题标题】:How to break a loop from an outside function [duplicate]如何打破外部函数的循环[重复]
【发布时间】:2014-08-19 12:50:18
【问题描述】:

我的问题是如何从循环外部中断。如果我不能,有解决办法吗?

def breaker(numberOfTimesYouWantToBreak):
    for i in range(0,numberOfTimesYouWantToBreak+1):
        return break
while True:
    for i in range(0,100000):
        breaker(10)
        print(i)

我想要的结果是:

11,12,13,14...

【问题讨论】:

  • 您不能从另一个函数返回 break 语句。此外,没有打破不止一次的事情。
  • 有解决办法吗?

标签: python python-3.x


【解决方案1】:

您不能在其他任何地方使用break 语句,只能直接在循环中使用。您不能从另一个函数中返回它,它不是要传递的对象。

但是,您似乎想跳过,而不是中断循环。您正在寻找 continue 关键字:

for i in range(0,100000):
    if i < 10:
        continue
    print(i)

如果您必须使用单独的函数,则让该函数返回 True 或 False 并使用 if 测试有条件地使用 continue:

def should_skip(i):
    return i < 10

for i in range(0,100000):
    if should_skip(i):
        continue
    print(i)

【讨论】:

    【解决方案2】:

    这是不可能的。

    解决方法是将您的代码放入一个函数中,并从该函数中放入return。

    【讨论】:

    • 谢谢,这也很有用,我下次知道!
    【解决方案3】:

    但是,您不能从外部中断,但您可以这样做:

    for i in range(0,100000):
        i += 10 + 1 #(10 is the number you wanted in the break function)
        print(i)
    

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2010-11-24
      • 2011-10-22
      • 1970-01-01
      • 2017-06-18
      相关资源
      最近更新 更多