Python小项目实战:杨辉三角

题目要求

编写python程序,实现输入正整数n,输出一个n层的杨辉三角,要求打印显示的时候左右对称
比如,输入7,返回结果如图所示
在这里插入图片描述

解决思路

  1. generate_pascals_triangle(n) 函数:
    生成一个包含 n 层的杨辉三角。
    初始化第一层为 [1]。
    对于每一层,从第二层开始,计算每个元素为上一层的两个相邻元素之和。
  2. print_pascals_triangle(triangle) 函数:
    格式化并打印杨辉三角,每层的元素居中显示。
  3. 主程序:
    从用户输入获取正整数 n。
    调用生成和打印函数来生成并显示杨辉三角。

代码演示

下述代码可复制在vscode中运行

def generate_pascals_triangle(n):
    if n <= 0:
        return []

    triangle = [[1]]  # 第一层是单独的1

    for i in range(1, n):
        row = [1]  # 每一层的第一个元素是1
        for j in range(1, i):
            # 每个元素是上一层的两个相邻元素之和
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)  # 每一层的最后一个元素是1
        triangle.append(row)

    return triangle

def print_pascals_triangle(triangle):
    for row in triangle:
        print(' '.join(map(str, row)).center(2*n))

if __name__ == "__main__":
    n = int(input("请输入一个正整数n: "))
    if n <= 0:
        print("请输入一个正整数!")
    else:
        triangle = generate_pascals_triangle(n)
        print_pascals_triangle(triangle)

关键函数详解

row.append 是 Python 列表(list)对象的方法之一,用于在列表的末尾添加一个新的元素。
在 Python 中,列表是一种可变的序列类型,可以动态地增删元素。append 方法是列表对象的一个内置方法,用于在列表的末尾添加一个新的元素。

  1. 语法
list.append(element)
  • list 是你要操作的列表对象。
  • element 是你要添加到列表末尾的元素。
  1. 示例
# 创建一个空列表
my_list = []

# 使用 append 方法在列表末尾添加元素
my_list.append(1)
print(my_list)  # 输出: [1]

my_list.append(2)
print(my_list)  # 输出: [1, 2]

my_list.append(3)
print(my_list)  # 输出: [1, 2, 3]

在生成杨辉三角的程序中,row.append 被用来在当前行(row)的末尾添加新的元素。

  1. 在杨辉三角中的使用
    在生成杨辉三角的过程中,每一行的第一个和最后一个元素都是 1,中间的元素是通过上一行的两个相邻元素之和计算出来的。row.append 用于将这些计算出来的元素添加到当前行的末尾。
for i in range(1, n):
    row = [1]  # 每一层的第一个元素是1
    for j in range(1, i):
        # 每个元素是上一层的两个相邻元素之和
        row.append(triangle[i-1][j-1] + triangle[i-1][j])
    row.append(1)  # 每一层的最后一个元素是1
    triangle.append(row)
  • row = [1]:初始化当前行,首元素为 1。
  • row.append(triangle[i-1][j-1] + triangle[i-1][j]):将当前行的中间元素添加到 row 中,这些元素是通过上一行的两个相邻元素之和计算出来的。
  • row.append(1):在当前行的末尾添加 1,因为杨辉三角的每一行的最后一个元素都是 1。
  • 通过这种方式,逐行构建杨辉三角,并将每一行添加到 triangle 列表中,最终生成一个包含 n 层的杨辉三角。
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值