python输出杨辉三角,咋输出捏?欸~我会~~~~

 第一种方法,输出带列表括号的

n=int(input('请输入杨辉三角打印的行数:'))
ls=[] #创建空列表用于存放生成的数列
for i in range(n):
    if i==0:
        ls.append([1])
    elif i==1:
        ls.append([1,1])
    else:
        y=[] #再次创建一个空列表来存放第三行及以上的数据
        for j in range(i+1):
            if j==0 or j==i:
                y.append(1)
            else:
                y.append(ls[i]+ls[i+1]) #每行头尾之外的赋值
        ls.append(y) #将列表添加进ls中
for i in range(n):
    s=str(ls[i]) #这里将列表内的元素转换为字符串之后输出可以使用center,不然会报错
    print(s.center(n*10))
        

输出结果,例如输入7,代表输出7行的杨辉三角

第二种,就是不带列表括号的

n=int(input('请输入杨辉三角打印的行数:'))
ls=[]
for i in range(n):
    if i==0:
        ls.append([1])
    elif i==1:
        ls.append([1,1])
    else:
        y=[]
        for j in range(i+1):
            if j==0 or j==i:
                y.append(1)
            else:
                y.append(ls[i-1][j]+ls[i-1][j-1])
        ls.append(y)
for i in ls:
    s='  '.join(str(j) for j in i)# 这里空格可以根据个人喜好来
    print(s.center(40))# 这个40也能根据个人喜好来,想改啥改啥
    
        

输出结果,还是输入7

 好啦,可能有大佬看到这里会有个小疑问(ps:我也不知道有没有,瞎猜的(●'◡'●))

为啥输出的时候不弄两个循环输出,这样不就不用写这老长一串了嘛

for i in ls:
    s='  '.join(str(j) for j in i) #就是这里
    print(s.center(40))

原因嘛……

 百思不得其解,曾经尝试过改成这样

for i in ls:
    for j in i:#把str(j) for j in i变成一个循环
        print(str(j).center(40))#输出
    #s='  '.join(str(j) for j in i)
    #print(s.center(40))

但是输出结果……哎~头大~~~~~

我也不知道为撒子就变成了这样,呜呜呜~  心累了已经……

不管啦,总之能输出就好啦!

谢谢各位大佬能够给小的赏个脸,看完这篇文章

 

 奇奇怪怪的题目来源于我的专业课考试,遇到奇奇怪怪的,好玩的题目就会发出来分享给大家

创作不易,创作不易,创作不易!!!!

作者还是个学生,不定期更新(有时间就更)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值