程序的核心能力之一就是"根据条件做选择、按规则反复执行"。Python 用 if / elif / else 表达分支,用 for 和 while 表达循环。掌握它们,你就掌握了让代码"活起来"的开关。
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 以内所有质数"当练习题。这两个小任务几乎覆盖了分支、循环、嵌套的所有用法。