Chapter 05

程序控制结构

Python基础 · 掌握流程控制的核心语法

欢迎关注微信公众号

coder程 查令十街84号

本章目录

1. 条件测试

条件测试是程序做出决策的基础。Python通过比较运算符产生 True False 的布尔值。

# 条件测试示例 age = 18 print(age >= 18) # True print(5 > 3 and 2 < 4) # True print("a" in "apple") # True print(3 == "3") # False (类型不同)

注意 :区分 == (等于比较)与 = (赋值)。

2. 分支结构 — if 单分支

if 语句根据条件决定是否执行一段代码。条件为真时执行,为假则跳过。

# if 单分支示例:判断成绩是否及格 score = 75 if score >= 60: print("成绩及格") # 缩进很重要!Python用缩进表示代码块

核心规则

2. 分支结构 — if-else 双分支

当需要"二选一"时,使用 if-else 结构。

# if-else 示例:判断奇偶数 num = 7 if num % 2 == 0: print(f"{num} 是偶数") else: print(f"{num} 是奇数")

if-elif-else 多分支 :处理多种条件判断。

# 成绩等级评定 score = 82 if score >= 90: grade = "A" elif score >= 80: grade = "B" elif score >= 70: grade = "C" elif score >= 60: grade = "D" else: grade = "F" print(f"成绩等级: {grade}")

2. 分支结构 — 嵌套与三元表达式

嵌套 if :在 if 代码块中再写 if,用于更精细的判断。

# 嵌套 if 示例:判断闰年 year = 2024 if year % 4 == 0: if year % 100 == 0: if year % 400 == 0: print("闰年") else: print("平年") else: print("闰年") else: print("平年")

三元表达式 :将简单 if-else 写成一行。

result = "成年" if age >= 18 else "未成年"

3. 遍历循环 — for

for 循环用于遍历可迭代对象(列表、字符串、字典、范围等),逐一处理每个元素。

# 遍历列表 fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) # 遍历字符串 for char in "Python": print(char, end=" ") # 使用 range() 生成数字序列 for i in range(5): print(i) # 0, 1, 2, 3, 4 for i in range(1, 10, 2): print(i) # 1, 3, 5, 7, 9

range(start, stop, step) :start 含,stop 不含,step 为步长。

3. 遍历循环 — for 进阶

enumerate() :同时获取索引和元素。

colors = ["red", "green", "blue"] for idx, color in enumerate(colors): print(f"{idx}: {color}")

zip() :并行遍历多个序列。

names = ["Alice", "Bob", "Carol"] scores = [85, 92, 78] for name, score in zip(names, scores): print(f"{name}: {score}分")

列表推导式 :for 循环的简洁写法。

squares=[x**2forxinrange(10)ifx%2==0] # [0, 4, 16, 36, 64]

4. 无限循环 — while

while 循环在条件为真时持续执行,条件为假时退出。适合 次数不确定 的场景。

# while 基本用法 count = 0 while count < 5: print(count) count += 1 # 用户输入验证 password = "" while password != "1234": password = input("请输入密码: ") print("验证通过")

break :立即跳出整个循环。

while True: text = input("输入 'quit' 退出: ") if text == "quit": break print(f"你输入了: {text}")

4. 循环控制 — continue 与 pass

continue :跳过当前迭代,继续下一次循环。

# 打印1-10中的奇数 for i in range(1, 11): if i % 2 == 0: continue # 偶数跳过 print(i)

pass :占位语句,不执行任何操作。常用于代码骨架。

for i in range(10): if i % 2 == 0: pass # 暂不处理偶数 else: print(i)

else 子句 :循环正常结束(没有被 break)时执行。

for n in range(2, 10): for x in range(2, n): if n % x == 0: break else: # 没有触发 break,说明是质数 print(n, "是质数")

4. 嵌套循环 — 经典案例

循环中再写循环,常用于处理二维结构或多重迭代。

# 打印九九乘法表 for i in range(1, 10): for j in range(1, i + 1): print(f"{j}×{i}={i*j}", end="\t") print()

输出

1 ×1=1 1 ×2=22 ×2=4 1 ×3=32 ×3=63 ×3=9 ...
# 打印直角三角形 n = 5 for i in range(1, n + 1): print("*" * i)

5. 注意事项与常见陷阱

# 错误示范:遍历中删除元素 nums=[1,2,3,4,5] forninnums[:]: ifn%2==0: nums. remove(n) # 正确做法:遍历 nums 的副本 nums[:]

综合练习:猜数字游戏

综合运用 if、while、break 写一个猜数字小游戏。

import random secret = random.randint(1, 100) attempts = 0 while True: guess = int(input("猜一个1-100的数字: ")) attempts += 1 if guess < secret: print("太小了!") elif guess > secret: print("太大了!") else: print(f"恭喜!你用了 {attempts} 次猜对了!") break

本章总结

下一章 ▶