Python-打印杨辉三角(进阶版)

简介: 本文介绍了如何使用Python打印杨辉三角的进阶方法,包括数学原理理解、列表存储数据、算法设计及输出格式控制。通过逐步解析,展示了如何实现用户自定义阶数的对称杨辉三角,并优化输出格式,使结果更加美观。适合编程初学者学习参考。

学的是b站的课,非本人自创代码!
现在来写一篇博客来讲解打印杨辉三角(进阶版)的方法,[如果讲述不清可以私信问哈,如果讲的不好也可以说,毕竟自己还是入门水平]


目录

1.进阶区别

2.关键要点

(1).数学原理理解

(2).使用列表来存储杨辉三角的每一行数据

(3).算法设计

(4).输出格式控制

3.步骤

(1).把n=5换成input函数

(2).整理格式

(3).微调

(4).左右对齐

4.演示

5.关键点

6.总结


1.进阶区别

现在这个代码可以让前面的结果呈对称展开,并且可以自己输入打印的阶数.

2.关键要点

(1).数学原理理解

明确杨辉三角中每个数字的生成规则,即通过上一行的两个数字相加得到当前数字。
理解对称性在杨辉三角中的体现,对称位置的数字相等。

(2).使用列表来存储杨辉三角的每一行数据

列表的灵活性使我们可以方便地进行数据的添加、修改和访问。通过嵌套列表可以构建出整个杨辉三角的结构。

(3).算法设计

设计合适的循环结构来生成杨辉三角的每一行数据。外层循环控制行数,内层循环控制每一行中的数字生成。
利用对称性减少计算量,只需要计算一半的数字,另一半可以通过对称得到。

(4).输出格式控制

调整输出格式,使得打印出的杨辉三角具有良好的对称性和可读性。使用适当的空格进行对齐,使三角形更加美观。

3.步骤

(1).把n=5换成input函数

# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1],[1,1])
for i in range(2,n):
    d = [1]
    for j in range(i-1):
        d.append(data[i-1][j] + data[i-1][j+1])
    d.append(1)
    data.append(d)
for i in data:
    for j in i:
        print(j,end="\t")
    print()

(2).整理格式

因为想按照杨辉三角的格式输出,所以在左侧数字1前要留有空格,空格数为n-当前i的数量.

# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
    d = [1]
    for j in range(i - 1):
        d.append(data[i - 1][j] + data[i - 1][j + 1])
    d.append(1)
    data.append(d)
for i in data:
    print(" "*(n-len(i)),end="")
    for j in i:
        print(j, end="\t")
    print()

(3).微调

现在左边的已经工整了,来看右边.右边要对齐的话,可以把j变成一个字符串,将其两端用空格补齐[center函数],这里的参数我们填6,也可以自行更改。别忘了将后面的end改成空格!

# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
    d = [1]
    for j in range(i - 1):
        d.append(data[i - 1][j] + data[i - 1][j + 1])
    d.append(1)
    data.append(d)
for i in data:
    print(" "*(n-len(i)),end="")
    for j in i:
        print(str(j).center(6), end=" ")
    print()

(4).左右对齐

调整代码,现在要使左右对齐,因为center参数为6,所以左边的空格应该为6/2=3,我们将其改为3个空格.

# 打印杨辉三角
n = int(input("请输入需要的阶数:"))
data = [[1], [1, 1]]
for i in range(2, n):
    d = [1]
    for j in range(i - 1):
        d.append(data[i - 1][j] + data[i - 1][j + 1])
    d.append(1)
    data.append(d)
for i in data:
    print("   "*(n-len(i)),end="")
    for j in i:
        print(j, end=" ")
    print()

4.演示

image.png

5.关键点

在实现过程中,关键要点的把握至关重要:
1.深入理解杨辉三角的数学原理,为代码实现提供了理论基础。
2.合理选择数据结构和设计算法,提高了代码的效率和可读性。
3.精心控制输出格式,使得打印出的结果更加美观和易于理解。

6.总结

在讲刚才那些东西的时候呢,说不定有些地方说得没那么清楚、没那么到位呀。要是真有这样的情况,大家可别见怪,多多包涵包涵哈。
在这儿,真的特别感谢大家能抽空来看我分享的这些内容呀,就盼着能在大家学编程的这条路上,稍微帮上那么一点儿小忙呢。希望这篇博客对你有所帮助,让你在Python编程的道路上更进一步。

相关文章
|
3月前
|
存储 索引 Python
Python-打印杨辉三角
本文介绍了使用Python打印杨辉三角的方法,涵盖列表使用、循环控制和数学运算等关键知识点。通过具体步骤和代码示例,详细讲解了生成杨辉三角的过程,适合初学者学习参考。
|
7月前
|
前端开发 Python
数据结构Python用队列实现杨辉三角形
数据结构Python用队列实现杨辉三角形
76 0
|
10月前
|
算法 Python Java
Python每日一练(20230429) 地下城游戏、杨辉三角II、旋转数组
Python每日一练(20230429) 地下城游戏、杨辉三角II、旋转数组
80 0
|
10月前
|
C++ Python Java
Python每日一练(20230422) 杨辉三角、最长回文子串、逆波兰表达式求值
Python每日一练(20230422) 杨辉三角、最长回文子串、逆波兰表达式求值
36 0
|
Python
Python|杨辉三角那点儿事
Python|杨辉三角那点儿事
127 0
|
Python
Python 用类重载乘法运算符计算和打印杨辉三角形
Python 用类重载乘法运算符计算和打印杨辉三角形
107 0
|
Python
Python 杨辉三角形的若干种求法
Python 杨辉三角形的若干种求法
75 0
|
存储 机器人 定位技术
Python 机器人魔鬼的步伐中居然隐藏着杨辉三角形
Python 机器人魔鬼的步伐中居然隐藏着杨辉三角形
83 0
|
算法 Python
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
231 0
备战蓝桥杯历年试题:杨辉三角形 省赛B组 Python详解
|
存储 算法 C++
杨辉三角案例的C/C++与Python实现
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
188 0
杨辉三角案例的C/C++与Python实现

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等