❓ 11. 条件判断 if/elif/else
本章概述
学习 Python 的条件判断语句,让程序根据条件执行不同的代码。 预计学习时间:40 分钟
11.1 if 语句
基本格式
if 条件:
条件成立时执行的代码注意
- 条件后面要有冒号
:- 缩进的代码块是条件成立时执行的
- 缩进用 4 个空格(官方推荐)
示例
age = 20
if age >= 18:
print("你是成年人")
print("可以独立做决定")
print("程序结束") # 这行不在if里,总是执行条件可以是什么?
任何能转成布尔值的表达式都可以当条件:
# 比较表达式
if age >= 18:
...
# 逻辑表达式
if age >= 18 and score >= 60:
...
# 直接用值(空值、0、空序列等都是False)
if name: # name非空字符串
...
if lst: # 列表非空
...Python 风格
不要写
if x == True:或if len(lst) > 0:直接写if x:或if lst:更 Pythonic
11.2 if-else 语句
条件成立执行 if 块,不成立执行 else 块。
基本格式
if 条件:
条件成立时执行
else:
条件不成立时执行示例
age = 16
if age >= 18:
print("成年人")
else:
print("未成年人")11.3 if-elif-else 语句
多个条件判断,按顺序检查,第一个成立的执行。
基本格式
if 条件1:
条件1成立时执行
elif 条件2:
条件2成立时执行
elif 条件3:
条件3成立时执行
else:
都不成立时执行说明
elif可以有多个else是可选的- 只会执行第一个成立的分支
示例
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")注意顺序
条件判断是从上到下的,顺序很重要!
# ❌ 错误:永远不会执行"优秀"分支 if score >= 60: print("及格") elif score >= 80: print("良好") elif score >= 90: print("优秀") # ✅ 正确:从高到低判断 if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 60: print("及格")
11.4 嵌套 if
if 里面还可以再写 if:
age = 25
money = 100
if age >= 18:
print("成年人")
if money >= 50:
print("可以买东西")
else:
print("钱不够")
else:
print("未成年人")嵌套不要太深
嵌套层级太多会让代码难以阅读,尽量控制在 3 层以内。
11.5 三元表达式(条件表达式)
Python 特色
简单的 if-else 可以用一行写完。
格式
值1 if 条件 else 值2条件成立返回值1,不成立返回值2。
示例
age = 20
# 普通写法
if age >= 18:
status = "成年"
else:
status = "未成年"
# 三元表达式(一行搞定)
status = "成年" if age >= 18 else "未成年"更多示例
# 求绝对值
x = -5
abs_x = x if x >= 0 else -x
# 取最大值
a, b = 10, 20
max_val = a if a > b else b
# 判断奇偶
num = 7
result = "奇数" if num % 2 else "偶数"什么时候用三元表达式?
- 简单的二选一赋值
- 代码更简洁
- 太复杂的逻辑还是用普通 if-else,可读性更好
11.6 match-case 模式匹配(Python 3.10+)
Python 3.10 新增了 match-case 语句,类似其他语言的 switch-case。
基本格式
match 变量:
case 值1:
匹配值1时执行
case 值2:
匹配值2时执行
case _:
都不匹配时执行(默认)示例
day = 3
match day:
case 1:
print("星期一")
case 2:
print("星期二")
case 3:
print("星期三")
case 4 | 5:
print("星期四或星期五")
case _:
print("周末")说明
- Python 3.10+ 才支持
- 功能比 switch-case 强大得多,支持各种模式匹配
- 初学者了解即可,实际用 if-elif-else 也完全可以
11.7 常见应用场景
1. 判断成绩等级
score = float(input("请输入成绩:"))
if score > 100 or score < 0:
print("成绩无效")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")2. 判断闰年
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("闰年")
else:
print("平年")3. 判断三角形
a, b, c = 3, 4, 5
if a + b > c and a + c > b and b + c > a:
print("能构成三角形")
if a == b == c:
print("等边三角形")
elif a == b or b == c or a == c:
print("等腰三角形")
elif a**2 + b**2 == c**2:
print("直角三角形")
else:
print("不能构成三角形")🔗 相关章节
📝 我的笔记
在这里记录你的理解、疑问和练习代码
# 你的练习代码
✅ 本章检查清单
- 掌握 if 语句的基本用法
- 掌握 if-else 语句
- 掌握 if-elif-else 多分支
- 理解嵌套 if
- 会使用三元表达式
- 了解 match-case 模式匹配