Python实操题-杨辉三角
```python
# -*- coding:utf-8 -*-
def triangles():
L = [1]
while True:
yield L # 生成器,返回L列表,并记住当前的状态,下次迭代时从这个状态开始。
L.append(0) # 在L列表末尾添加一个0元素。注意:此处不能使用L += [0],会出错。原因是+=会生成一个新的List,原来的List不变。而append()方法会在原来的List上修改。
L = [L[i - 1] + L[i] for i in range(len(L))] # 迭代生成新的列表
n = 0 # 要打印几行杨辉三角形呢? 如果要打印7行就将n=7.
results = [] # 杨辉三角形存储在了results中, 每一行都是一个list, results中存储了多个list. 比如本例中, n=7时, results=[ [1], [1, 1], [1, 2, 1], ... ] (请看test_triangle())
for t in triangles(): # 迭代triangles()生成器对象t. t是一个list. 每次循环都会生成新的list. 直到n+1次循环后退出循环. 例如本例中 n=7时, t=[1], [1, 1], ... ,[1364]. (请看test_triangle())
print(t) # 打印t list对应的杨辉三角形 (请看test_triangle())
results.append(t) # 将t list加入results中 (请看test_triangle())
n = n + 1 # 计数器加1 (请看test_triangle())
if n == 10: # 判断是否已打印完10行 (请看test_triangle())
break # 退出循环 (请看test_triangle())
```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!