条件控制是Python编程的核心技能之一,它赋予程序智能决策能力。本文将系统讲解从基础if语句到高级模式匹配的完整知识体系。

作为条件控制的基础,if语句通过判断条件真伪来决定是否执行代码块。
基本语法:
if condition:
# 当 condition 为 True 时执行的代码块
statement1
statement2
...
语法要点:
if 关键字开头condition 为布尔表达式:示例 1:基本判断
age = 18
if age >= 18:
print("成年人") # 输出:成年人
当需要处理条件为假的情况时,else子句不可或缺。
基本语法:
if condition:
# 条件为真时执行的语句块
else:
# 条件为假时执行的语句块
示例 2:判断是否成年
age = 16
if age >= 18:
print("成年人")
else:
print("未成年人") # 输出:未成年人
面对多个互斥条件时,elif可以实现更精细的逻辑分支。
基本语法:
if condition1:
# 条件1为真时执行的语句块
elif condition2:
# 条件1为假,条件2为真时执行的语句块
elif condition3:
# 条件1,2为假,条件3为真时执行的语句块
...
else:
# 上述所有条件都为假时执行的语句块
示例 3:成绩等级划分
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好") # 输出:良好
elif score >= 70:
print("中等")
elif score >= 60:
print("及格")
else:
print("不及格")
复杂场景下,可以在条件代码块内嵌套新的判断逻辑。
基本语法:
if condition1:
if condition2:
# 条件1和条件2都为真时执行的语句块
else:
# 条件1为真但条件2为假时执行的语句块
else:
# 条件1为假时执行的语句块
示例 4:判断数字的性质
num = 10
if num > 0:
if num % 2 == 0:
print("正偶数") # 输出:正偶数
else:
print("正奇数")
else:
if num == 0:
print("零")
else:
print("负数")
通过逻辑运算符可以构建更复杂的布尔表达式。
| 操作符 | 描述 | 示例 |
|---|---|---|
and | 两个条件都为真时结果才为真 | x > 0 and x < 10 |
or | 至少一个条件为真时结果为真 | x < 0 or x > 10 |
not | 对布尔值取反 | not (x == 5) |
示例 5:判断闰年
year = 2024
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year} 是闰年") # 输出:2024 是闰年
else:
print(f"{year} 不是闰年")
Python逻辑运算符具有短路特性,可优化性能并防止错误。
if user is not None and user.is_active:
print("用户在线")
简洁表达二选一逻辑的语法糖。
语法:
value_if_true if condition else value_if_false
示例 6:简洁赋值
age = 20
status = "成年" if age >= 18 else "未成年"
print(f"状态: {status}") # 输出:状态: 成年
强大的结构化模式匹配功能。
基本语法:
match expression:
case pattern1:
...
case pattern2:
...
case _:
...
示例 7:处理HTTP状态码
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the Internet"
注意区分互斥和非互斥的条件判断。
将最具体的条件放在判断链最前面。
善用Python的真值特性简化代码。
提高复杂逻辑的可读性。
遵循Pythonic的编码风格。
从基础条件判断到高级模式匹配,Python提供了完整的条件控制工具集。通过合理运用这些特性,可以编写出既健壮又优雅的代码,让程序具备真正的决策智能。