首页 > 解决方案 > 我如何在这里使用 Python iter?

问题描述

我如何在这里使用 python iter?我想通过使用“next”方法一个一个地打印素数并设置一个限制,例如最多 100。

def prime(num):
    i = 2

    while i < num:
        if (num % i == 0):
            return False
        i += 1
    return True


def prime_generator():
    i = 2
    while True:
        if (prime(i)):
            yield i
        i += 1


for num in prime_generator():
    if (num > 100):
        break
    print(num)

标签: python

解决方案


for num in prime_generator()等价于并且可以写成:

r = prime_generator()
while True:
    try:
        num = next(r)
    except StopIteration:
        break

推荐阅读