MST
星途 面试题库

面试题:Python 中 continue 在生成器与循环结合场景下的应用

定义一个生成器函数 `num_generator`,生成从 1 到 100 的整数。在另一个函数中,使用 `for` 循环迭代这个生成器,当生成的数字满足某个复杂条件(例如:该数字的平方加上该数字的立方,其结果的各个数位之和是 7 的倍数)时,使用 `continue` 跳过该数字,仅返回其余数字。请写出完整代码,并解释 `continue` 在这个场景下对生成器迭代的影响。
10.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def num_generator():
    for i in range(1, 101):
        yield i


def process_generator():
    result = []
    for num in num_generator():
        sum_value = sum(map(int, str(num**2 + num**3)))
        if sum_value % 7 == 0:
            continue
        result.append(num)
    return result


print(process_generator())

continue 在这个场景下对生成器迭代的影响是:当生成器生成的数字满足特定复杂条件时,continue 语句会跳过当前循环体中剩余的代码,直接进入下一次循环迭代,也就是跳过满足条件的数字,不将其添加到结果列表中,继续处理生成器生成的下一个数字。这样保证了生成器的迭代不受影响,按顺序逐个生成数字,只是在处理时跳过不符合要求的数字。