Python输出一个杨辉三角

本文介绍了三种不同的Python方法来生成杨辉三角,包括使用循环和列表推导式。通过不断迭代,将前一行的数值相加形成新的行,并在新行的两端添加1,直至达到所需的行数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输出一个杨辉三角
第一个方法:
def triangles():
    l = [1]
    yield l                                                                     #输出第一行:只有一个1的list
    l = [1,1]
    yield l                                                                    #输出第二行,两个1的list
    while True:
        l1 = l[1:]                                                         #从l的索引1开始取,取后面所有的元素.
        for n in range(len(l1)):
            l[n] = l1[n]+l[n]                                         #这个地方就是由于l1是从第二个截取了l,所以每次n+1,都是两个相邻位置数字相加。
        l = [1]+l                                                        #在最前面补上一个1
        yield l

换个角度在理解一下:
def triangles():
    c = [1]
    while True:
        yield c
        a,b = [0]+c,c+[0]
        c =[a[i]+b[i] for i in range(len(a))]
#这个方法显得更易理解;其实就是分别在c的前后各补上0
0,1
1,0  二者相加,变成1,1
0,1,1
1,1,0  二者相加,1,2,1  以此类推。。。


这个就更简单了:每次修改中间的,两头不管。
def triangles():
    l = [1]
    while True:
        yield l
        l = [1]+[l[i]+l[i+1] for  i in range(len(l)-1)]+[1]






调用:
n = 0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值