- 列表生成器与生成器
[]
与()
的区别。
python的语法真的是很贴近口语表达了233
教程网址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000 - 杨辉三角
最重要的是理解教程中说的yield的用法,即生成器generator与一般函数返回时的区别。
在敲代码的过程中遇到的问题是不知道要如何用python语言恰当的表达杨辉三角的规律。最后发现list可以简单用[]+[]+...+[]
来表示orz,那问题就很简单了。
测试时常用print()
还是蛮有效的。
根据题目意思,定义函数triangle()
来生成杨辉三角的一行,通过list的迭代显示结果。当然也可以直接定义triangle(n)
,直接完成相应输出,但是就失去生成器的意义了,即边运行边生成,节省内存的占用。
最后附上代码:
def triangles():
tri = [1]
yield tri
tri = [1, 1]
yield tri
i = 2
while True:
tri = [1] + [tri[i] + tri[i + 1] for i in range(len(tri) – 1)] + [1]
yield tri
n = 0
results = []
for t in triangles():
print(t)
results.append(t)
n = n + 1
if n == 10:
break
if results !=[
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1],
[1, 5, 10, 10, 5, 1],
[1, 6, 15, 20, 15, 6, 1],
[1, 7, 21, 35, 35, 21, 7, 1],
[1, 8, 28, 56, 70, 56, 28, 8, 1],
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
]:
print(‘测试失败’)
else:
print(‘测试成功’)
python学习笔记——生成器与杨辉三角
原文作者:杨辉三角问题
原文地址: https://blog.csdn.net/mer_chen/article/details/88585320
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/mer_chen/article/details/88585320
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。