def f(): yield from abcdefg #使用yield表达式创建生成器 x = f() next(x) a next(x) b for item in x: #输出x中的剩余元素 print(item, end= ) c d e f g 5.8 高级话题——生成器函数 def gen(): yield 1 yield 2 yield 3 x, y, z = gen() #生成器对象支持序列解包 5.8 高级话题——生成器函数 5.7 案例精选 例5-5:编写函数,接收整数参数t,返回斐波那契数列中大于t的第一个数。 def demo(t): a, b = 1, 1 while bt: a, b = b, a+b else: return b print(demo(50)) 5.7 案例精选 例5-6:编写函数,接收一个包含若干整数的列表参数lst,返回一个元组,其中第一个元素为列表lst中的最小值,其余元素为最小值在列表lst中的下标。 import random def demo(lst): m = min(lst) result = (m,) for index, value in enumerate(lst): if value==m: result = result+(index,) return result x = [random.randint(1,20) for i in range(50)] print(x) print(demo(x)) 5.7 案例精选 例5-7:编写函数,接收一个整数t为参数,打印杨辉三角前t行。 def demo(t): print([1]) print([1,1]) line = [1,1] for i in range(2,t): r = [] for j in range(0,len(line)-1): r.append(line[j]+line[j+1]) line = [1]+r+[1] print(line) demo(10) 5.7 案例精选 例5-8:编写函数,接收一个正偶数为参数,输出两个素数,并且这两个素数之和等于原来的正偶数。如果存在多组符合条件的素数,则全部输出。 5.7 案例精选 import math def IsPrime(n): m = int(math.sqrt(n))+1 for i in range(2, m): if n%i==0: return False return True def demo(n): if isinstance(n,int) and n0 and n%2==0: for i in range(3, n//2 +1): if IsPrime(i) and IsPrime(n-i): print(i, +, n-i, =, n) demo(60) 5.7 案例精选 例5-9:编写函数,接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。 def demo(m,n): if mn: m, n = n, m p = m*n while m!=0: r = n%m n = m m = r return (n, p//n) print(demo(12,30)) 5.7 案例精选 Python标准库已经提供了计算最大公约数的方法。 import fractions fractions.gcd(36, 39) 3 fractions.gcd(30, 20) 10 30*20/fractions.gcd(30, 20) 60.0 import math math.gcd(36, 39) 3 5.7 案例精选 例5-10:编写函数,接收一个所有元素值都不相等的整数列表x和一个整数n,要求将值为n的元素作为支点,将列表中所有值小于n的元素全部放到n的前面,所有值大于n的元素放到n的后面。 5.7 案例精选 import random def demo(x
您可能关注的文档
最近下载
- GB50461-2024:石油化工静设备安装工程施工质量验收规范.pptx VIP
- 三江A116火灾报警控制器简易操作规程.docx
- (新版)社会体育指导员理论知识考试题库(含答案).docx VIP
- DB31T 1104-2018 城市轨道交通导向标识系统设计规范.docx VIP
- 2023年浙江省军队转业干部录用考试试题.docx VIP
- 口渴了-朋友帮你.ppt VIP
- Xikong西莱克低温机控制板SHXK814用户手册.pdf
- 爱迪生牛顿大发明攻略.doc VIP
- 重庆天齐锂电新材料有限公司新建1000吨_年高能锂电材料电池级金属锂项目环评报告.pdf VIP
- 朗文3A复习资料及垃圾分类作文8篇.doc VIP
原创力文档

文档评论(0)