代码简洁、注释详细、可直接复制运行,零基础也能轻松看懂。
一、核心基础: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()