Python 实现杨辉三角

方法一:

a = int(input())
list1 = [1]

for i in range(a):
    # 只有 1 行或者 2行
    if i == 0:
        print(list1)
    elif i == 1:
        list1.append(1)
        print(list1)
    else: # 3行以上
        list2 = []
        for j in range(i+1):
            if j == 0:
                list2.append(1)
            elif j == i:
                list2.append(1)
            else:
                list2.append(list1[j]+list1[j-1])
        list1 = list2
        print(list1)

运行结果:

10
[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]

方法二:

a = int(input())
list1 = [1]

for i in range(a):
    print(list1)
    list1.append(0)
    list2 = list1
    list1 = [list1[j]+list1[j-1] for j in range(i+2)]

这里涉及到列表推导式
列表推导式可以快速生成一个列表。语法格式如下:
在这里插入图片描述
列表推导式最终的目的是为了改造输入序列。for 后面的变量,表示输入序列里的元素;输出表达式,是产生最终列表的元素的计算公式;可选的判断表达式,可以对输入序列里的元素进行筛选。

例子:

list1 = [x*3 for x in range(1, 5)]
print(list1)

结果:

[3, 6, 9, 12]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁同学与Android

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值