无法在函数定义中使用continue命令报错,该如何解决?
问题解决思路
continue关键字只能直接用在for/while循环的代码块内部,你把它放在独立函数sample()里,函数本身不属于任何循环的一部分,所以必然会抛出语法错误。下面给你两种实用的解决方式:
方法1:让函数返回标记,由循环决定是否跳过迭代
把函数改成返回一个布尔值,告诉调用它的循环要不要执行continue。同时别用全局变量a,直接把循环变量作为参数传给函数,代码更健壮:
def sample(a): if a == 1: print(a) return False # 不需要跳过当前循环 else: return True # 需要跳过当前循环 language = [1, 2, 3, 1, 4] for i in language: if sample(i): continue
方法2:将循环逻辑内联(适合简单场景)
如果函数逻辑不复杂,直接把判断逻辑写到循环里,省去函数调用的环节:
language = [1, 2, 3, 1, 4] for i in language: if i == 1: print(i) else: continue
核心原则就是:continue必须直接出现在循环的缩进块里,不能在外部函数中调用。
内容的提问来源于stack exchange,提问作者Ahmet Said Oyanık.
相关产品推荐
相关产品推荐

