程序的核心能力之一就是"根据条件做选择、按规则反复执行"。Python 用 if / elif / else 表达分支,用 forwhile 表达循环。掌握它们,你就掌握了让代码"活起来"的开关。

1. 布尔表达式与比较运算

分支与循环都依赖布尔表达式。比较运算符包括 == != > < >= <=,以及成员判断 in、身份判断 is:

age = 20
print(age > 18)          # True
print(age == 20)         # True
print("py" in "python")  # True 子串判断
print([1, 2] == [1, 2])  # True 值相等
print([1, 2] is [1, 2])  # False 不是同一对象

== 比较值,is 比较身份。对列表、字典这类可变对象,二者结果经常不同。

2. if / elif / else 结构

多分支判断按顺序检查,命中一个就跳过其余。经典的成绩等级例子:

score = 85
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"
print(f"等级:{grade}")   # 等级:B

注意:条件从上往下匹配,elif 的顺序会影响结果,判断范围时要先写大区间或小区间,想清楚边界。

3. 逻辑运算与短路求值

and / or / not 组合条件。Python 的逻辑运算是"短路"的:左侧已能决定结果时,右侧根本不会执行:

user = None
# 短路:user 为 None 时,不会执行 len(user)
if user is not None and len(user) > 3:
    print("用户名合法")

# 利用短路实现"默认值"
name = user or "访客"
print(name)   # 访客

4. for 循环与 range

for 遍历任何可迭代对象;配合 range() 控制次数和步长:

fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 同时拿到下标:enumerate
for i, fruit in enumerate(fruits):
    print(i, fruit)

# range(起点, 终点, 步长) 终点不包含
for i in range(0, 10, 2):
    print(i, end=" ")   # 0 2 4 6 8

5. while 循环与 break / continue

while 适合"不知道要循环多少次"的场景。break 立即退出,continue 跳过本次进入下一轮:

n = 0
while True:
    n += 1
    if n % 10 == 0:
        continue        # 跳过 10 的倍数
    if n > 25:
        break           # 超过 25 停止
    print(n, end=" ")

while 时务必确认退出条件一定会被满足,否则就是死循环——CPU 会瞬间飙满。

6. 循环的 else 与推导式

Python 有个少见但好用的特性:循环正常结束(没被 break)会执行 else 分支,适合做"查找失败"判断:

nums = [3, 5, 7, 11]
for x in nums:
    if x == 6:
        print("找到了")
        break
else:
    print("没有 6")   # 循环未被 break,输出此行

# 推导式:循环 + 条件一行搞定
squares = [x * x for x in range(6) if x % 2 == 0]
print(squares)   # [0, 4, 16]
💡 学习建议:把"打印九九乘法表"和"用循环找出 100 以内所有质数"当练习题。这两个小任务几乎覆盖了分支、循环、嵌套的所有用法。