Py小郑 2022-01-29 10:22 采纳率: 96.6%
浏览 64
已结题

Python如何打印杨辉三角形

img


输出如图所示(虚线不要,虚线只是用来描述轮廓线) 请问该如何编写代码?感觉好难= =
我感觉好像要用到居中

  • 写回答

1条回答 默认 最新

  • LYSnowy 2022-01-29 10:53
    关注
    
    def Traingle(x):
        '''定义杨辉三角的函数,即下一行的第N个元素,是本行的第N个元素和第N-2个元素的和,最后返回一个列表'''
        x = int(x)
        Traingle_list = []
        if x == 1:
            Traingle_list = [1]
        elif x == 2:
            Traingle_list = [1,1]
        else:
            Traingle_list_temp = Traingle(x-1)#获取上一行三角列表
            Traingle_list = [1,1]
            temp = 1
            while temp <= x-2:
                Traingle_list.insert(temp,Traingle_list_temp[temp]+Traingle_list_temp[temp-1])
                temp += 1
    
        return Traingle_list
    
    
    def PrintTringle(x):
        n = 1
        x = int(x)
        # 获取最大的元素,判断列表最大的元素的长度
        if x % 2 == 0:
            max_item = Traingle(x)[int(x/2)]
        else:
            max_item = Traingle(x)[int((x+1)/2)]
        max_length = len(str(max_item))
        while n <= x :
            list = Traingle(n)
            string = ''
            tem = 0
            # 对每一列杨辉三角进行处理,转化成为字符串,拼接
            while tem < len(list):
                if tem == 0:
                    string = str(list[tem]).center(max_length)
                else:
                    string = string + ' ' + str(list[tem]).center(max_length)
                tem += 1
            # 打印处理,每一列的元素有N个,空格用N+1
            print(string.center((max_length+1)*x-1))
            n += 1
    
    
    if __name__ == '__main__':
        PrintTringle(10)
    

    img

    不用居中,输出空格就可以

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 已采纳回答 1月29日
  • 修改了问题 1月29日
  • 修改了问题 1月29日
  • 展开全部

悬赏问题

  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上