Python新手入门:从“1234”到金字塔,玩转循环打印炫酷图案379



哈喽,各位编程爱好者们!我是你们的中文知识博主,今天我们来聊一个Python入门阶段超有趣、超实用的话题——如何使用循环结构来打印各种各样的图案!这不仅能让你深入理解Python的循环机制,还能锻炼你的逻辑思维和问题解决能力。无论是打印简单的数字序列,还是复杂的金字塔,掌握了这些小技巧,你就能玩转Python的“图案世界”!


你可能会想,打印图案有什么用呢?在实际开发中,我们可能不会直接去打印这些图形,但这个过程是理解“循环”、“嵌套循环”以及“控制输出”等核心概念的绝佳方式。它就像编程世界的“Hello World”一样,是构建更复杂程序的基础砖瓦。而且,当你看到自己敲出的代码能“画”出漂亮的图案时,那种成就感可是无与伦比的!


废话不多说,让我们直接进入主题!

图案打印的基础工具:for循环与print()函数


在Python中,打印图案主要依赖于两个“神器”:`for` 循环和 `print()` 函数。

1. `for` 循环:重复的力量



`for` 循环是Python中最常用的循环结构之一,它允许我们遍历序列(如列表、字符串或 `range()` 函数生成的数字序列)中的每个元素,并对每个元素执行相同的操作。
例如,我们要打印1到5的数字:



for i in range(1, 6):
print(i)


输出结果:



1
2
3
4
5


`range(1, 6)` 会生成一个从1开始,到5结束(不包含6)的整数序列。

2. `print()` 函数:控制输出的关键



`print()` 函数我们天天用,但要打印图案,我们需要关注它的一个特殊参数:`end`。
默认情况下,`print()` 函数在打印完内容后会自动添加一个换行符 ``,这意味着每次 `print()` 都会在新的一行开始。但打印图案时,我们往往需要在同一行打印多个字符。这时,就可以使用 `end=''` 来取消自动换行,让后续的打印内容紧随其后。
例如:



print("Hello", end="")
print("World")


输出结果:



HelloWorld


如果想在新的一行开始,而前面又使用了 `end=''`,只需单独调用一个不带参数的 `print()` 即可:



print("AAA", end="")
print("BBB") # 这一行默认换行
print("CCC", end="")
print() # 单独的print()会打印一个换行符
print("DDD")


输出结果:



AAABBB
CCC
DDD

核心技巧:嵌套循环的艺术


要打印二维的图案,比如方块、三角形等,仅仅一个 `for` 循环是不够的,我们需要“嵌套循环”。
简单来说,就是在一个 `for` 循环的内部再放入另一个 `for` 循环。外层循环通常控制图案的“行数”(row),内层循环则控制每一行的“列数”(column)或打印的字符数量。


想象一下你在画一张格子纸:
* 你画完一行,就换到下一行(外层循环的工作)。
* 在每一行里,你从左到右画格子(内层循环的工作)。

实战演练:从“1234”到金字塔

图案1:简单的矩形图案



我们先从最简单的开始:打印一个由星号组成的矩形。



size = 5
for i in range(size): # 外层循环控制行数
for j in range(size): # 内层循环控制每行打印的字符数
print("*", end="") # 在同一行打印星号
print() # 每打印完一行,就换行


输出结果:



*
*
*
*
*


在这里,外层循环 `i` 运行5次,代表5行;内层循环 `j` 也运行5次,代表每行有5个星号。

图案2:递增数字直角三角形(你的“1234”来了!)



现在,让我们来解决标题中提到的“1234”模式。这种模式是每一行都打印从1开始,递增到当前行数的数字。



rows = 5
for i in range(1, rows + 1): # 外层循环:控制行数,从1到rows
for j in range(1, i + 1): # 内层循环:控制每行打印的数字,从1到当前行数i
print(j, end="") # 打印数字j,不换行
print() # 每行结束后换行


输出结果:



1
12
123
1234
12345


看到没?关键在于内层循环的范围 `range(1, i + 1)`,它使得每一行打印的数字数量和最大值都与外层循环变量 `i`(当前行数)相关联。

图案3:星号直角三角形



有了数字三角形的基础,星号三角形就简单了。



rows = 5
for i in range(1, rows + 1): # 外层循环:控制行数
for j in range(i): # 内层循环:控制每行打印的星号数量,等于当前行数i
print("*", end="")
print()


输出结果:



*
*
*


这里 `range(i)` 实际上会生成 `0` 到 `i-1` 的序列,刚好循环 `i` 次。

图案4:倒置星号直角三角形



如果想让三角形倒过来呢?我们可以让外层循环从大到小递减。



rows = 5
for i in range(rows, 0, -1): # 外层循环:从rows递减到1 (步长-1)
for j in range(i): # 内层循环:每行打印i个星号
print("*", end="")
print()


输出结果:



*
*
*

图案5:金字塔图案(挑战升级!)



金字塔图案稍微复杂一点,因为它不仅有星号,还有行首的空格。我们需要为每一行先打印一定数量的空格,再打印星号。



rows = 5
for i in range(1, rows + 1): # 外层循环:控制行数,从1到rows
# 打印前导空格
for s in range(rows - i): # 空格数量 = 总行数 - 当前行数
print(" ", end="")
# 打印星号
for star in range(2 * i - 1): # 星号数量 = 2 * 当前行数 - 1 (1, 3, 5, 7...)
print("*", end="")
print() # 每行结束后换行


输出结果:



*
*
*
*
*


这里的关键是:
* 空格数量:随着 `i` 增大,空格数量 `rows - i` 会逐渐减少。
* 星号数量:星号数量是 `2 * i - 1`,这是金字塔每一层星号的规律(1, 3, 5, 7, ...)。

图案打印小贴士


在尝试打印更复杂的图案时,这里有一些实用的小技巧:

画图分析:在纸上画出你想要打印的图案,并给每一行和每一列标上索引(从0或1开始)。
找出规律:观察每一行中,空格和字符的数量与行号(外层循环变量 `i`)之间有什么关系。
拆解问题:将一个复杂的图案拆解成几个简单的部分(比如先打印空格,再打印字符),分步实现。
内外循环联动:内层循环的范围或打印内容往往会依赖于外层循环的当前值 `i`。
灵活使用 `range()`:`range(start, stop, step)` 的三个参数能帮你控制循环的起点、终点和步长,适应各种递增或递减的模式。

总结与展望


通过今天的学习,我们一起探索了Python中如何利用 `for` 循环和 `print()` 函数,特别是嵌套循环,来打印从简单矩形到“1234”数字序列,再到金字塔的各种图案。这个过程不仅锻炼了我们的逻辑思维,也加深了对循环结构的理解。


图案打印只是Python世界的一个小小的入口,但它为我们打开了通向更复杂算法和数据结构的大门。希望这篇文章能激发你对编程的兴趣,鼓励你多动手实践。
下次,你可以尝试打印空心矩形、菱形,或者用不同的字符组合出更独特的图案。记住,编程的乐趣就在于不断尝试和创造!


如果你有任何疑问或想分享你的图案作品,欢迎在评论区留言!我们下期再见!

2026-02-25


上一篇:Python图形化编程:从数据可视化到GUI应用,解锁你的创意代码!

下一篇:用Python征服桥梁调度难题:车辆通行模拟与优化实战