Python 杨辉三角前十行

本文介绍了一个使用Python编写的简单程序,该程序通过控制台输入行数来打印一个倒置的三角形图案。代码中包含了用户输入处理、循环和字符串操作,适合初学者学习和理解Python的基本语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

s = "1"
user_info = int(input("Enter rows:")) # 这里不对用户输入的非法信息做处理,假设用户输入的都是合法信息
space = user_info - 1
for i in range(user_info):
    s = " " * space + s
    print(s)
    m = ""
    temp_list = s.strip().split()
    for j in range(len(temp_list) - 1):
        m += str(int(temp_list[j]) + int(temp_list[j + 1]))
        m += " "
    s = "1 " + m + "1"
    space -= 1


### 杨辉三角Python代码实现 以下是通过Python实现打印10杨辉三角代码示例: ```python def generate_yanghui_triangle(n): triangle = [] for i in range(n): row = [1] * (i + 1) # 初始化当为全1 for j in range(1, i): # 计算中间部分的值 row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j] triangle.append(row) return triangle def print_yanghui_triangle(triangle): max_width = len(" ".join(map(str, triangle[-1]))) # 获取最后一的最大宽度 for row in triangle: output = " ".join(map(str, row)).center(max_width) # 居中对齐 print(output) if __name__ == "__main__": num_rows = 10 yanghui_triangle = generate_yanghui_triangle(num_rows) print_yanghui_triangle(yanghui_triangle) ``` #### 代码说明 1. **`generate_yanghui_triangle` 函数** 此函数用于生成指定数的杨辉三角列表。每的第一个和最后一个元素始终为1,其余元素由上一相邻两个元素之和计算得出[^2]。 2. **`print_yanghui_triangle` 函数** 此函数负责以美观的方式打印杨辉三角。它会根据最大宽调整每一的位置,使整个三角形居中显示[^3]。 3. **主程序逻辑** 设置 `num_rows=10` 表示要打印10杨辉三角,并调用上述两个函数完成生成与打印操作。 运代码后,将得到如下输出结果: ``` 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 ``` --- #### 使用Generator实现杨辉三角 如果希望通过更简洁的方式来实现杨辉三角,可以采用生成器(generator)。以下是一个基于生成器的实现方式: ```python def triangles(): L = [1] while True: yield L L.append(0) # 添加一个虚拟节点以便于计算 L = [L[i - 1] + L[i] for i in range(len(L))] # 利用列表推导式更新新 n = 0 for t in triangles(): print(" ".join(map(str, t)).center(50)) # 调整中心对齐 n += 1 if n == 10: # 控制只打印10 break ``` 这段代码同样能够生成并打印出10杨辉三角,且更加高效地利用内存资源[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值