用户:
温翎皓_school查看:0 回复:0 评论:0 创建时间:2021-07-19T01:35:53
先看一下Demo:https://wws.lanzoui.com/ijwcnrle9md
密码:897g
代码:
#杨辉三角-金字塔版
'''
注意:迭代对象
1金字塔的数字列表
2列表数值转str类型.center居中
'''
def triangle():
N = [1]
while True:
yield N # generator特点在于:在执行过程中,遇到yield就中断,下次又继续执行
L = N.copy() # 我们需要吧N复制给L,而不能直接L = N,因为这样L和N会在同一个地址,后续算法就会出错
for j in range(len(L)): # 遍历和转化
temp = str(L[j])
L[j] = temp
l = ' '.join(L).center(50) # 组合和剧中一起写
print(l) # 这里就是打印l了
N.append(0) # 每次都要在最后一位加个0,用于后续的叠加
N = [N[i] + N[i - 1] for i in range(len(N))]
def print_triangle(x):
a = 0
for t in triangle(): # 这里可以每次调用一个N(得力于Yield函数)
# print(t)
a += 1
if a == x:
break
print_triangle(10) # 打印10行