众力资讯网

Python实现杨辉三角|经典算法练习✨ 算法入门必刷案例——杨辉三角 把二维列

Python实现杨辉三角|经典算法练习✨
算法入门必刷案例——杨辉三角
把二维列表、双层循环、自定义函数综合运用,非常适合巩固Python基础逻辑。
杨辉三角核心规律:
1. 每一行首尾元素永远为 1
2. 中间元素 = 上一行相邻两个元素之和
3. 第 i 行,会拥有 i+1 个数字
这份代码做了完整的工程化小设计:
✅ 函数封装,传入行数即可输出三角
✅ 二维列表存储数据,逻辑清晰易懂
✅ while无限循环,支持多次输入
✅ 输入 end 即可退出程序
✅ 合法性校验,过滤非正整数输入
不止是打印输出,更侧重数据存储思维,不是直接print,而是先用二维列表把完整三角全部存下来,最后再统一打印,这也是算法题里很重要的思想。
完整源码👇
python
def f(n):
初始化二维列表,用来存放整个杨辉三角
triangle = []
i代表当前是第i行,循环生成n行
for i in range(n):
创建当前行,一行有i+1个元素,全部初始化为1
row = [1] * (i + 1)
杨辉三角每行首尾都是1,只需要计算下标1 ~ i-1的中间元素
for j in range(1, i):
当前位置的值 = 上一行左上元素 + 上一行正上方元素
row[j] = triangle[i-1][j-1] + triangle[i-1][j]
把生成好的这一行,添加到二维列表triangle中
triangle.append(row)
遍历三角的每一行,逐行打印
for line in triangle:
print(line)
函数执行完毕,返回提示文字
return "打印完成"

无限循环,支持多次输入,输入end退出程序
while True:
获取用户输入的行数
row_str = input("请输入杨辉三角行数:")
如果输入end,跳出循环,结束程序
if row_str == "end":
break
将输入的字符串转为整数
rows = int(row_str)
判断行数是否为正数
if rows > 0:
调用函数打印指定行数的杨辉三角
f(rows)
else:
行数小于等于0时给出提示
print("行数必须是正整数")
📝拓展思考题
1. 如何优化打印格式,输出成等腰三角样式?
2. 如果不使用二维列表,是否可以只用一维列表完成?
3. 增加异常捕获,处理用户输入非数字的情况
Python编程 编程 数据分析 猿编程 Python入门