Python 条件判断语句学习笔记
1. 什么是条件判断
条件判断是编程中用于根据特定条件决定执行哪段代码的机制。在 Python 中,条件判断语句让程序能够像人类一样做出“如果……就……”的逻辑决策。
2. 布尔值(bool)与比较运算
条件判断的核心是布尔值(True / False)。任何条件表达式最终都会被求值为布尔值。
2.1 常用比较运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
== |
等于 | a == b |
!= |
不等于 | a != b |
> |
大于 | a > b |
< |
小于 | a < b |
>= |
大于等于 | a >= b |
<= |
小于等于 | a <= b |
age = 18
print(age >= 18) # True
print(age == 20) # False
3. if 语句(单分支)
最基本的条件判断结构,当条件为 True 时执行缩进的代码块。
if 条件:
# 条件为 True 时执行
语句块
示例:
score = 85
if score >= 60:
print("恭喜,你及格了!")
注意:Python 使用缩进(通常 4 个空格)表示代码块,不要忘记冒号
:。
4. if-else 语句(双分支)
当需要“二选一”时,使用 else 处理条件为 False 的情况。
if 条件:
# 条件为 True 时执行
语句块1
else:
# 条件为 False 时执行
语句块2
示例:
temperature = 30
if temperature > 25:
print("天气炎热")
else:
print("天气凉爽")
5. if-elif-else 语句(多分支)
当有多个互斥条件需要依次判断时,使用 elif(即 else if 的缩写)。
if 条件1:
语句块1
elif 条件2:
语句块2
elif 条件3:
语句块3
else:
# 所有条件均为 False 时执行
语句块4
示例:
score = 78
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "E"
print(f"等级:{grade}") # 输出 C
注意:
elif可以有任意多个,else是可选的,且最多只能有一个。
6. 条件嵌套
if 语句内部可以再包含 if 语句,形成嵌套结构,用于处理更复杂的逻辑。
is_weekend = True
temperature = 28
if is_weekend:
if temperature > 30:
print("周末去游泳")
else:
print("周末去公园")
else:
print("工作日上班")
嵌套层次不宜过多(建议不超过 3 层),否则可读性会下降。
7. 逻辑运算符(and、or、not)
用于组合多个条件,构造更复杂的表达式。
| 运算符 | 含义 | 短路规则 |
|---|---|---|
and |
与(所有条件为 True 才为 True) | 左边为 False 则不再计算右边 |
or |
或(任一条件为 True 即为 True) | 左边为 True 则不再计算右边 |
not |
非(取反) | 单目运算符 |
示例:
age = 22
has_id = True
# 同时满足两个条件
if age >= 18 and has_id:
print("可以进入网吧")
# 满足任一条件
if age < 18 or age > 60:
print("享受优惠票价")
# 取反
if not has_id:
print("请出示身份证")
8. 成员运算符与身份运算符
in/not in:判断元素是否存在于序列(字符串、列表、元组等)中。is/is not:判断两个变量是否引用同一个对象(而非值相等)。
# 成员运算符
fruits = ["apple", "banana", "orange"]
if "apple" in fruits:
print("有苹果")
# 身份运算符(通常用于 None 判断)
value = None
if value is None:
print("值为空")
9. 条件表达式(三元运算符)
Python 支持简洁的条件表达式,形式为 值1 if 条件 else 值2,用于在单行内根据条件返回不同值。
# 传统写法
if age >= 18:
status = "成年"
else:
status = "未成年"
# 三元表达式
status = "成年" if age >= 18 else "未成年"
适合简单场景,不推荐过度嵌套使用。
10. 常见错误与最佳实践
10.1 常见错误
- 忘记冒号:
if score > 60❌ 应为if score > 60:✅ - 缩进不一致:混用制表符和空格(建议统一使用 4 个空格)
- 将赋值
=误用为比较==:if x = 5会报错,应为if x == 5 - 条件顺序不严谨:多分支时先判断更严格的条件(如先判断
>=90再判断>=80)
10.2 最佳实践
- 保持条件简单清晰,复杂条件可拆分为多个变量
- 避免过深的嵌套,可使用
elif或提前return扁平化逻辑 - 对于多个相等性判断,可用
in替代多个or:
if x in (1, 2, 3):优于if x == 1 or x == 2 or x == 3: - 布尔值本身可直接作为条件:
if is_valid:而非if is_valid == True:
11. 综合示例
# 模拟登录验证 + 权限分级
username = "admin"
password = "123456"
captcha = "abc"
if not username or not password or not captcha:
print("所有字段均需填写")
else:
if username == "admin" and password == "123456" and captcha == "abc":
print("登录成功")
# 嵌套判断权限
if username == "admin":
print("欢迎管理员,您拥有所有权限")
else:
print("欢迎普通用户")
else:
print("用户名、密码或验证码错误")
12. 总结
if、elif、else构成 Python 条件判断的核心- 条件表达式求值为布尔值,支持比较、逻辑、成员和身份运算
- 缩进是语法的一部分,必须严格遵守
- 合理使用逻辑运算符和嵌套,注意代码可读性
- 三元运算符适合简单分支,多分支用
if-elif-else
掌握条件判断,是编写具有“智能”逻辑的程序的第一步。多写多练,自然熟能生巧。