栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

练习:杨辉三角

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

练习:杨辉三角


我的CSDN主页My Python 学习个人备忘录我的HOT


杨辉三角

  
    题目代码运行效果完整代码

练习题目



百度百科“杨辉三角”词条


回首页

代码运行效果

  第六行起,“三角”排列有些“变形”,造成原因是,有了多于一位的数字,数字位数越多,三角变形就越厉害。如果都用相同的宽度打印“三角”的每一个数字,“杨辉三角”就会是一个标准的等腰三角形。
  修改每一个“杨辉三角”数字打印宽度,就可以打印出更多行排列齐整的“三角”。
例如:把每个数字的打印宽度设置为 5 ,在 111 的宽度上就可以打印出 18 行齐整的“三角”。 python 代码(数字打印宽度 5 ):
n = 18
print(f'nnn{"杨辉三角":_^107}nn')
print(f'{"":_^111}')
Pascal_list = Pascal_triangle(n)
for i in Pascal_list:
    print(f'{" ".join([f"{int:.^5}" for int in i]):_^111}')
print(f'{"":_^111}')
print(f'nn{"The End":_^111}n')





回首页

python完整代码 (如果从语句注释不能清楚作用,请评论区留言指教和探讨。欄)
# coding: utf-8

def Pascal_triangle(n):
    '''杨辉三角二维列表生成'''
    if n == 0: #n为零时杨辉三角列表为空。
        return []
    if n == 1: #n为零时杨辉三角列表为[1]。
        return [[1]]
    if n == 2: ##n为零时杨辉三角列表为[1], [1, 1]。
        return [[1], [1, 1]]
    Pascal_list = [[1], [1, 1]]
    for i in range(3, n + 1): # n > 2 时,杨辉三角当前行除了首尾,都等于上一行当前位置和前一位置的两个数的和。
        temp = [] #初始化当前行这空。
        for k in range(i): #每一行的元素个数等于行数数字。
            if k == 0 or k == i - 1: #每一行首尾都是 1 。
                temp.append(1)
            else: #每一行其他元素等于上一行当前位置和前一位置的两个数的和。
                temp.insert(k, Pascal_list[i - 2][k - 1] + Pascal_list[i - 2][k]) #从第三行开始计算,所以是 i - 2 行。
        Pascal_list.append(temp) #当前行追加到杨辉三角列表。
    return Pascal_list #返回杨辉三角列表。

n = 12 #生成杨辉三角的行数。
print(f'nnn{"杨辉三角":_^38}nn') #打印结果输出第一行提示。
Pascal_list = Pascal_triangle(n) #调用函数生成杨辉三角列表。
for i in Pascal_list: #遍历列表打印杨辉三角。
    print(f'{" ".join([str(int) for int in i]):^42}') #当前行解析成字符并用 ' '.join(str) 拼接成字符串居中打印输出。
print(f'nn{"The End":_^42}n') #打印结果输出最后一行提示。

回首页

我的HOT博:

New:罗马数字转换器|罗马数字生成器(当前阅读1105)New让QQ群昵称色变的神奇代码(当前阅读1521)斐波那契数列(递归实现和for实现)(当前阅读1846)排序数组中查找元素的重复起止位置(当前阅读1204)柱状图中最大矩形(当前阅读1608)电话拨号键盘的字母组合(当前阅读1225)密码强度检测器(当前阅读1670)求列表平衡点(当前阅读1705) 字符串统计(当前阅读2083)尼姆游戏(代码优化版)(当前阅读825)Hot:尼姆游戏(聪明版首发)(当前阅读3247)

推荐条件 点阅破千

参考文章:


上一篇: 对 Ctrl + D 、 Ctrl + Z 终止 sys.stdin 的测试
下一篇: 练习:移除元素


好文力荐:靠谱程序员的好习惯
回首页

精品文章:

OPP三大特性:封装中的property通过内置对象理解python'正则表达式python中“*”的作用Python 完全自学手册海象运算符Python中的 `!=`与`is not`不同学习编程的正确方法

来源:老齐教室


CSDN实用技巧博文:

8个好用到爆的Python实用技巧python忽略警告


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725891.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号