网站首页 > 技术文章 正文
数字金字塔是Python初学者练习循环和格式化输出的经典案例,可以帮助理解嵌套循环和字符串格式化的使用。下面我将介绍几种不同风格的数字金字塔实现。
方法一:基础数字金字塔
def number_pyramid(n):
"""打印数字金字塔"""
for i in range(1, n+1):
# 打印前导空格
print(" " * (n - i), end="")
# 打印左半部分数字(升序)
for j in range(1, i+1):
print(j, end="")
# 打印右半部分数字(降序)
for j in range(i-1, 0, -1):
print(j, end="")
print() # 换行
# 测试
rows = int(input("请输入金字塔行数: "))
number_pyramid(rows)
输出示例(5行):
1
121
12321
1234321
123454321
方法二:使用字符串格式化
def formatted_pyramid(n):
"""使用字符串格式化打印金字塔"""
for i in range(1, n+1):
# 生成左半部分数字字符串
left = "".join(str(j) for j in range(1, i+1))
# 生成右半部分数字字符串
right = "".join(str(j) for j in range(i-1, 0, -1))
# 组合并居中显示
print(f"{left+right:^{2*n-1}}")
# 测试
rows = int(input("请输入金字塔行数: "))
formatted_pyramid(rows)
方法三:倒置数字金字塔
def inverted_pyramid(n):
"""打印倒置数字金字塔"""
for i in range(n, 0, -1):
print(" " * (n - i), end="")
for j in range(1, i+1):
print(j, end="")
for j in range(i-1, 0, -1):
print(j, end="")
print()
# 测试
rows = int(input("请输入金字塔行数: "))
inverted_pyramid(rows)
输出示例(5行):
123454321
1234321
12321
121
1
方法四:字母金字塔
def alphabet_pyramid(n):
"""打印字母金字塔"""
for i in range(1, n+1):
print(" " * (n - i), end="")
# 打印升序字母
for j in range(i):
print(chr(65 + j), end="")
# 打印降序字母
for j in range(i-2, -1, -1):
print(chr(65 + j), end="")
print()
# 测试
rows = int(input("请输入金字塔行数: "))
alphabet_pyramid(min(rows, 26)) # 限制不超过26行(字母数)
输出示例(5行):
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
方法五:自定义填充金字塔
def custom_pyramid(n, char="*"):
"""自定义填充字符的金字塔"""
for i in range(1, n+1):
spaces = " " * (n - i)
pattern = char * (2*i - 1)
print(f"{spaces}{pattern}")
# 测试
rows = int(input("请输入金字塔行数: "))
symbol = input("请输入填充字符(默认*): ") or "*"
custom_pyramid(rows, symbol)
方法六:数字和字符混合金字塔
def mixed_pyramid(n):
"""数字和字符混合金字塔"""
for i in range(1, n+1):
print(" " * (n - i), end="")
# 数字部分
for j in range(1, i+1):
print(j, end="")
# 字符部分
for j in range(i-1, 0, -1):
print(chr(64 + j), end="")
print()
# 测试
rows = int(input("请输入金字塔行数: "))
mixed_pyramid(rows)
输出示例(5行):
1
12A
123BA
1234CBA
12345DCBA
方法七:斐波那契金字塔
def fibonacci_pyramid(n):
"""斐波那契数列金字塔"""
a, b = 0, 1
fib_numbers = []
for _ in range(n*(n+1)//2): # 计算所需斐波那契数
fib_numbers.append(b)
a, b = b, a + b
index = 0
for i in range(1, n+1):
print(" " * (n - i), end="")
for _ in range(i):
print(fib_numbers[index], end=" ")
index += 1
print()
# 测试
rows = int(input("请输入金字塔行数: "))
fibonacci_pyramid(rows)
输出示例(5行):
1
1 2
3 5 8
13 21 34 55
89 144 233 377 610
总结
通过这个数字金字塔案例,我们学习了:
- 嵌套循环的使用
- 字符串格式化和对齐
- 数字和字符的转换
- 不同金字塔模式的实现
- 数学序列在图案中的应用
这些练习可以帮助初学者掌握Python的基本语法和逻辑思维,为进一步学习算法和数据结构打下基础。
猜你喜欢
- 2025-07-03 Python错误:IndentationError (缩进错误)
- 2025-07-03 字符串对齐的常用方法(对字符串的常用处理方法)
- 2025-07-03 Python轻松实现markdown转网页,完美支持mermaid图表、latex公式
- 2025-07-03 Python循环语句(python循环语句分为哪两种)
- 2025-07-03 编程小白学做题:Python 的经典编程题及详解,附代码和注释(六)
- 2025-07-03 Python输出语句print()(python语句print(type(1j))的输出结果)
- 2025-07-03 Python入门到脱坑经典案例—九九乘法表
- 2025-07-03 Python格式化:让数据输出更优雅(Python格式化输出代码)
- 2025-07-03 一节课的时间快速掌握Python基础知识
- 2025-07-03 Python缩进规范详解与最佳实践(python缩进有什么作用)
- 274℃Python短文,Python中的嵌套条件语句(六)
- 272℃python笔记:for循环嵌套。end=""的作用,图形打印
- 270℃PythonNet:实现Python与.Net代码相互调用!
- 265℃Python实现字符串小写转大写并写入文件
- 264℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 124℃原来2025是完美的平方年,一起探索六种平方的算吧
- 105℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 102℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- Python错误:IndentationError (缩进错误)
- 字符串对齐的常用方法(对字符串的常用处理方法)
- Python轻松实现markdown转网页,完美支持mermaid图表、latex公式
- Python循环语句(python循环语句分为哪两种)
- 编程小白学做题:Python 的经典编程题及详解,附代码和注释(六)
- Python入门到脱坑经典案—数字金字塔
- Python输出语句print()(python语句print(type(1j))的输出结果)
- Python入门到脱坑经典案例—九九乘法表
- Python格式化:让数据输出更优雅(Python格式化输出代码)
- 一节课的时间快速掌握Python基础知识
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)