用Python写一个杨辉三角

用Python写一个杨辉三角

杨辉三角是什么,在百度上随便一搜就能搜到这里不多做解释了


print("请输入一个整数,就会打印出相应行数的杨辉三角")
max=int(input())
def triangles(max):
    L = [1]
    n=1
    while n<=max:
        yield L
        L = [sum(i) for i in zip([0]+L, L+[0])] #在每一行的最前面和最后面都看成有一个元素0,就发现下一行的1就是上一行的0+1
        n+=1                                    #每行首位都有一个0后,其实下一行的数字,都是上一行,相邻两个元素相加的和
def ptintL(n):#打印n-1个空格
    for i in range(1,n) :
        print(' ',end='')

for i in triangles(max):
    ptintL(max)
    for j in i:
        j=str(j)+' '
        print(j,end='')
    print()
    max-=1

元组(2,3),元组列表[(1,2),(3,5)]
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
a = [1,2,3], b = [4,5,6],zipped = zip(a,b) ,[(1, 4), (2, 5), (3, 6)]
sum([1,4]) 5
简单举个例子第二行0,1,1,0 就是zip([0,1,1],[1,1,0]),将列表下表相同的元素求和就是下一行的杨辉三角
第三行0,1,2,1,0 就是zip([0,1,2,1],[1,2,1,0]),将列表下表相同的元素求和就是下一行的杨辉三角

结果

请输入一个整数,就会打印出相应行数的杨辉三角
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 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值