Skip to main content
 首页 » 编程设计

python之如何在 python 中的 for 循环中跳过函数内的迭代步骤

2025年05月04日14lexus

功能:

def function_1(value): 
    if value < 5: 
        continue 
    else: 
        print "value: ", value 

循环:

for value in xrange(10): 
    function_1(value) 

在上面的for循环中,如果value小于5,function_1会让for循环跳到下一次迭代,否则打印值。 如何借助上述循环内的函数跳过迭代步骤?

请您参考如下方法:

函数不知道它是否在循环内被调用,当然不能使用 continue 或 break 来影响该循环。

您必须在这里使用不同的通信方式。使用异常或返回一个 bool 值来指示需要跳到下一次迭代的循环代码。

使用异常:

for value in xrange(10): 
    try: 
        function_1(value) 
    except ExceptionRaisedByFunction1: 
        # the frobnar failed to foozle the baz 
        continue 

会在函数中发出异常情况的信号,例如,表明当前值不合适,可以跳过其余的迭代。

您也可以考虑改用生成器函数来过滤您的可迭代对象:

def filter_function(iterable): 
    for value in iterable: 
         if value >= 5: 
              print "value: ", value 
              yield value 
 
for value in filter_function(xrange(10)): 
    # do something with value 

此处生成器仅生成 5 或更大的值,因此 for 循环永远不需要使用 continue,因为永远不会看到低于 5 的值。