"""
生成器
- 生成器表达式:(x ** 2 for x in range(1, 11))
- yield关键字
迭代器
- __iter__:返回迭代器对象
- __next__:取下一个迭代值
"""
from math import sqrt
def is_prime(num):
"""判断是不是素数"""
for factor in range(2, int(sqrt(num)) + 1):
if num % factor == 0:
return False
return True
def prime(num):
"""素数生成器"""
for val in range(2, num + 1):
if is_prime(val):
yield val
class Prime(object):
"""素数迭代器"""
pass
class Fib(object):
"""斐波拉切数迭代器"""
def __init__(self, num):
self.num = num
self.a, self.b = 0, 1
self.idx = 0
def __iter__(self):
return self
def __next__(self):
if self.idx < self.num:
self.a, self.b = self.b, self.a + self.b
self.idx += 1
return self.a
raise StopIteration()
def fib(num):
"""斐波拉切数生成器"""
a, b = 0, 1
for _ in range(num):
a, b = b, a + b
yield a
def main():
"""主函数"""
print('fibonacci number'.center(80, '-'))
for val in Fib(20):
print(val, end=' ')
print('\n', '-' * 80, sep='')
print('prime number'.center(80, '-'))
for val in prime(100):
print(val, end=' ')
print('\n', '-' * 80, sep='')
if __name__ == '__main__':
main()
并发编程—概念以及生成缩略图小程序
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1、抗拒学英文 在国内几乎所的编程语言都是外国的,所以学技术必定要学会看英文文档,如果不学英文,是绝对无法从菜鸟转...
- 一、并发和并行 并发和并行是两个很容易被混淆的概念。并发强调的是多个任务交替执行,而并行指的是多个任务真正的同时执...