当前位置: 首页 > 面试题库 >

中断并继续运行

仲智
2023-03-14
问题内容
def funcA(i):
   if i%3==0:
      print "Oh! No!",
      print i
      break

for i in range(100):
   funcA(i)
   print "Pass",
   print i

我知道上面的脚本不起作用。因此,如果需要将带有break的函数或继续放入循环,该如何写?


问题答案:

一个函数不能导致中断或继续调用它的代码。中断/继续实际上必须出现在循环内。您的选择是:

  1. 从funcA返回一个值并使用它来决定是否中断
  2. 在funcA中引发异常并将其捕获在调用代码中(或调用链中更高的位置)
  3. 写一个生成器来封装中断逻辑,然后在生成器上进行迭代 range

通过#3我的意思是这样的:

def gen(base):
    for item in base:
        if item%3 == 0:
           break
        yield i

for i in gen(range(1, 100)):
    print "Pass," i

这允许您通过将条件分组到基于“基本”迭代器(在此情况下为范围)的生成器中来满足条件。然后,您在此生成器上进行迭代,而不是在范围本身上进行迭代,您会得到破坏行为。



 类似资料:
  • 本文向大家介绍Java嵌套中断/继续,包括了Java嵌套中断/继续的使用技巧和注意事项,需要的朋友参考一下 示例 这是可能的break/continue到外环使用标签声明: Java中的标签没有其他用途。

  • 我知道我过去解决过这个问题,但今天似乎做不到。我写了一个非常简单的程序,它产生20只海龟,让它们随机移动。我点击我的设置,它们就出现了。然后我点击去,我得到一个勾。我必须一遍又一遍地点击去才能移动。 当我单击一次go时,如何让它继续运行? 在“界面”选项卡上,我设置了“查看更新”选项。

  • 我正在写一个网页抓取程序,我面临着以下问题。当我的URL是*. doc或*. jpg等时,我的当前请求不会超时,也不会传递到下一个URL。 例如: 你能帮我获取()url吗?但有些url需要10秒钟,然后转到下一个吗?? 我还尝试了eventled: 我收到了如下一系列错误: Traceback(最近一次调用): File"emailCrawler.py", line 69, in getLink

  • 本文向大家介绍Go 打破并继续,包括了Go 打破并继续的使用技巧和注意事项,需要的朋友参考一下 示例 像许多其他语言一样,Go也支持打破循环并继续进行下一个迭代: 该break和continue语句还接受一个可选的标签,用于标识外环路与声明的目标:            

  • 我在单元测试中使用groovy脚本。我有以下代码片段,我在单个测试脚本中使用多个断言。 第一个断言失败并停止执行。但我想继续进一步的代码片段。 与selenium中的软断言类似,我应该如何收集groovy中的所有失败异常。

  • 问题内容: 是否有可能继续进行后? 除了检索引发异常的行的ID,然后重新启动忽略该ID,我看不到该怎么做。 我正在使用Oracle数据库10。 问题答案: 您可以使用error_logging_clause进行此操作。(该链接用于插入内容,因为在MERGE的文档中,它表示其行为与插入内容相同。 对于您的情况: 请注意,error_logging_clause有一些限制。从文档中: 以下情况导致该语