猫史档案馆


用python实现杨辉金字塔

用户:温翎皓_school温翎皓_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行

 


回复

上一页1 页 / 共 0下一页