我的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忽略警告



