当前位置:首页>python>Python 循环实战:精美三角形图案打印 + 经典嵌套循环案例

Python 循环实战:精美三角形图案打印 + 经典嵌套循环案例

  • 2026-09-16 11:27:24
Python 循环实战:精美三角形图案打印 + 经典嵌套循环案例
【写在前面】可以参看我的视频进行学习,喜欢的话,关注,点赞,分享

代码简洁、注释详细、可直接复制运行,零基础也能轻松看懂。

一、核心基础:for 循环嵌套(必看)

循环嵌套就是循环里套循环:外层循环控制行数,内层循环控制每行的内容(空格/星号),是打印图形的核心逻辑。

格式:

# 外层循环:控制行数
for i in 范围:
# 内层循环:控制每行的列数/内容
for j in 范围:
        循环体

二、5 种经典三角形打印(直接复制运行)

所有案例统一用 * 打印,行数可自由修改!

1. 正直角三角形(最基础)

# 正直角三角形
rows = 5# 三角形行数,可修改
for i in range(rows):  # 外层循环:控制行数(0-4)
# 内层循环:每行打印 i+1 个星号
for j in range(i + 1):
        print("*", end="")  # end="" 不换行
    print()  # 一行结束后换行

效果预览:

*
**
***
****
*****

2. 倒直角三角形

# 倒直角三角形
rows = 5
for i in range(rows):
# 内层循环:每行打印 rows-i 个星号
for j in range(rows - i):
        print("*", end="")
    print()

效果预览:

*****
****
***
**
*

3. 左对齐等腰三角形(带空格)

# 左对齐等腰三角形
rows = 5
for i in range(rows):
# 第一步:打印空格(倒三角空格)
for j in range(rows - i - 1):
        print(" ", end="")
# 第二步:打印星号(奇数递增)
for k in range(2 * i + 1):
        print("*", end="")
    print()

效果预览:

    *
   ***
  *****
 *******
*********

4. 空心等腰三角形(进阶好看)

# 空心等腰三角形
rows = 5
for i in range(rows):
for j in range(rows - i - 1):
        print(" ", end="")
for k in range(2 * i + 1):
# 仅第一行、最后一行,或边框位置打印星号
if i == 0or i == rows - 1or k == 0or k == 2 * i:
            print("*", end="")
else:
            print(" ", end="")
    print()

效果预览:

    *
   * *
  *   *
 *     *
*********

5. 实心等边三角形(美观版)

# 实心等边三角形
rows = 5
for i in range(1, rows + 1):
# 打印前置空格
    print(" " * (rows - i), end="")
# 打印星号+空格,优化间距更像等边
    print("* " * i)

效果预览:

    * 
   * * 
  * * * 
 * * * * 
* * * * * 

三、3 个经典循环嵌套案例(拓展学习)

除了打印图形,嵌套循环在实际开发中超常用,这 3 个案例适合公众号拓展讲解!

1. 9×9 乘法表(经典中的经典)

# 99乘法表
for i in range(1, 10):  # 外层:乘数1(1-9)
for j in range(1, i + 1):  # 内层:乘数2(1到i)
        print(f"{j}×{i}={i*j}", end="\t")  # \t 制表符对齐
    print()

效果:标准乘法表,整齐美观。

2. 百钱百鸡(数学小算法)

# 百钱买百鸡:公鸡5元1只,母鸡3元1只,小鸡1元3只
# 用100元买100只鸡,求所有解
for x in range(0, 21):  # 公鸡最多20只
for y in range(0, 34):  # 母鸡最多33只
        z = 100 - x - y  # 小鸡数量
# 总钱数判断:5x+3y+z/3 = 100,且小鸡是3的倍数
if z % 3 == 0and5*x + 3*y + z//3 == 100:
            print(f"公鸡{x}只,母鸡{y}只,小鸡{z}只")

3. 二维列表遍历(表格数据)

# 遍历二维列表(类似Excel表格)
score = [
    ["姓名", "语文", "数学"],
    ["小明", 90, 95],
    ["小红", 88, 92]
]

for row in score:  # 外层:遍历每一行
for item in row:  # 内层:遍历每一行的元素
        print(item, end="\t")
    print()

最新文章

随机文章