前面我们学了数据类型和数据运算,你已经能用Python做一些简单的计算了。
但你会发现:代码从上往下一条条执行,机械又呆板。
❌ 想根据不同情况做不同的事?不行。❌ 想重复做同一件事100遍?你得写100遍。
这时候,三大程序结构就出场了!
掌握了它们,你的代码才能真正活起来。
一、什么是三大程序结构?
任何复杂的程序,都可以分解成三种基本结构:
1️⃣ 顺序结构 —— 按顺序一条条执行(你已经在用了)
2️⃣ 选择结构 —— 根据条件决定做哪件事(if语句)
3️⃣ 循环结构 —— 重复做某件事多次(while/for)
就像做菜:
下面一个一个拆解。
二、顺序结构(最基础,你天天在用)
程序从上往下,一行一行执行,每条语句执行一次。
# 顺序结构示例name ="小明"age =18print(f"我叫{name},今年{age}岁")
特点:
顺序结构就像流水线,每个工件依次经过各个工位。
三、选择结构(让代码会做决定)
根据条件是否成立,决定执行哪段代码。
1️⃣ if 语句(单分支)
age =18if age >=18: print("已成年,可以投票")
条件为True,执行;为False,跳过。
2️⃣ if-else 语句(二选一)
score =58if score >=60: print("及格了")else: print("不及格,继续努力")
两条路必选其一,没有第三条。
3️⃣ if-elif-else 语句(多选一)
score =85if score >=90: grade ="优秀"elif score >=75: grade ="良好"elif score >=60: grade ="及格"else: grade ="不及格"print(f"等级:{grade}")# 良好
elif 可以有多个,但只会进入第一个条件成立的分支。
4️⃣ 嵌套选择(选择里面套选择)
is_student =Truescore =85if is_student: if score >=60: print("学生及格") else: print("学生不及格")else: print("不是学生")
⚠️ 注意:嵌套层数不要太深,否则代码像锯齿,难读难维护。
💡 小技巧:用 match-case(Python 3.10+)
类似于其他语言的 switch:
day =3match day:case 1: print("星期一")case 2: print("星期二")case 3: print("星期三")case _: print("其他")
case _ 相当于 else。
四、循环结构(让代码会重复)
重复执行某段代码,直到条件不满足。
1️⃣ while 循环(不知道要循环多少次时用)
# 猜数字游戏secret =7guess =0while guess != secret: guess =int(input("猜一个数字:")) print("猜对了!")
特点:先判断条件,后执行循环体。
⚠️ 小心死循环:
# ❌ 会永远跑下去while True: print("停不下来") # ✅ 必须有改变条件的机会count =0while count <5: print(count) count +=1# 这句很关键
2️⃣ for 循环(明确循环次数时用)
# 遍历列表fruits =["苹果","香蕉","橙子"]for fruit in fruits: print(fruit)# 配合 range() 循环数字for i inrange(5):# 0,1,2,3,4 print(i)for i inrange(2,8):# 2,3,4,5,6,7 print(i)for i inrange(1,10,2):# 1,3,5,7,9(步长2) print(i)
3️⃣ break 和 continue(循环控制)
# break:立即跳出整个循环for i inrange(10):if i ==5:breakprint(i)# 输出 0 1 2 3 4# continue:跳过本次,进入下一次for i inrange(5): if i ==2: continue print(i)# 输出 0 1 3 4
4️⃣ while vs for 怎么选?
五、三大结构实战案例
案例1:猜数字游戏(选择+循环)
import randomsecret = random.randint(1,100)attempts =0while True: guess =int(input("猜1-100之间的数字:")) attempts +=1 if guess == secret: print(f"恭喜!用了{attempts}次猜对了") break elif guess < secret: print("小了") else: print("大了")
案例2:打印九九乘法表(循环嵌套)
for i inrange(1,10): for j inrange(1, i +1): print(f"{j}×{i}={i*j}", end="\t") print()
输出效果:
1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ...
案例3:判断质数(选择+循环)
num =29is_prime =Trueif num <2: is_prime =Falseelse: for i inrange(2,int(num **0.5)+1): if num % i ==0: is_prime =False break print(f"{num}是质数" if is_prime elsef"{num}不是质数")
五、常见错误与避坑指南
🔥 坑1:if 后面忘了冒号
# ❌ 错误if age >18 print("成年")# ✅ 正确if age >18: print("成年")
🔥 坑2:用 = 代替 ==
# ❌ 错误(赋值而不是比较)if score =100: print("满分")# ✅ 正确if score ==100: print("满分")
🔥 坑3:死循环
# ❌ 永远停不下来i =0while i <10: print(i)# 忘了写 i += 1# ✅ 记得更新循环变量i =0while i <10: print(i) i +=1
🔥 坑4:缩进错误
Python用缩进表示代码块,缩进不一致会报错。
# ❌ 缩进不对if True:print("没缩进")# IndentationError# ✅ 统一缩进(通常是4个空格)if True: print("正确缩进")
七、选结构小口诀(好记)
顺序执行最简单,一行一行往下串。
选择分支 if 来担,条件成立执行它,else 后面是备选,elif 可以写多段。
循环重复不偷懒,while 条件前把关,for 遍历更方便,break 跳出 continue 跳段。
写在最后
三大程序结构是编程的骨架:
顺序:基础骨架
选择:让代码有判断力
循环:让代码有生产力
把这三种结构组合起来,你已经能写出很多实用程序了!
📌 如果觉得有用,点赞+在看+转发 给正在学Python的小伙伴!
打好基础,事半功倍。我们下期见! 👋