所以最近我们在讲座中回顾了发电机,这是我老师的例子:
from predicate import is_prime
def primes(max = None):
p = 2
while max == None or p <= max:
if is_prime(p):
yield p
p += 1
如果我们逃跑
^{pr2}$所以这个特定的生成器示例使用while
循环并基于该循环运行函数,但是生成器是否也可以有一个for
循环?比如说
for i in range(2, max+1):
# ...
这两者的运作方式会相似吗?在
生成器唯一的特殊之处是
yield
关键字,并且它们在调用generatornext()
函数之间被暂停。在你可以使用任何你喜欢的循环结构,就像在普通的python函数中一样。在
使用
for i in range(2, max + 1):
将与while
循环相同,前提是max
被设置为None
之外的值:相关问题 更多 >
编程相关推荐