Python 基础知识 之 选择结构(if、elif、else、三元表达式、match)
选择结构(Selection Structure) 是程序设计中最常用的结构之一,用于根据条件决定执行哪一段代码。
🩵 一、选择结构的基本概念
选择结构用于 让程序根据条件做出不同的选择。
Python 提供以下几种常见的选择结构:
| 类型 | 说明 |
|---|---|
| 单分支结构 | 只在条件成立时执行某段代码 |
| 双分支结构 | 条件成立执行A,否则执行B |
| 多分支结构 | 根据多个条件选择不同分支 |
| 嵌套结构 | 在条件中再次判断 |
| 三元表达式 | 简写形式的单行 if-else |
| match 结构 | Python 3.10 新增的模式匹配结构(类似 switch) |
🩷 二、单分支结构 if
📘 语法结构
if 条件表达式:
语句块
⚙️ 执行逻辑
-
当条件成立(True)时,执行语句块;
-
当条件不成立(False)时,跳过语句块。
⚠️ 注意事项
-
条件表达式后要加 冒号(:);
-
缩进 用来决定语句块范围(通常为4个空格)。
💡 示例
# 1. 判断是否中奖
number = eval(input('请输入您的6位中奖号码:')) # eval将输入的类型(字符型)转化为int类型
if number == 987654: # 等值判断
print('中奖了!')
# 2. 判断奇偶数
n = 98 # 赋值操作
if n % 2 == 0: # %取余操作,98 % 2 的余数为0,0的布尔值为False
print('n是偶数')
else:
print('n是奇数')
# 3. 判断一个字符串是否为空字符串
x = input('请输入一个字符串:')
if x: # 非空字符串的布尔值为True,空字符串的布尔值为False
print('x是一个非空字符串')
else:
print('x是一个空字符串')
# 4. 表达式也可以是一个单纯的布尔类型
flag = eval(input('请输入一个布尔值(True或False):')) # 注意input输入的类型为str
if flag:
print('flag的值为True')
else:
print('flag的值为False')
# 5. 精简版if语句
a = 10
b = 8
if a > b: max = a # 精简写法
print('a和b的最大值为:', max)
🩶 三、双分支结构 if...else
📘 语法结构
if 条件表达式:
语句块1
else:
语句块2
💡 示例
# 判断是否中奖
number = eval(input('请输入6位中奖号码:'))
if number == 987654:
print('恭喜您中奖了!')
else:
print('很遗憾,您未中奖。')
✨ 精简写法:三元表达式
print('您中奖了' if number == 987654 else '您未中奖')
🩷 四、多分支结构 if...elif...else
📘 语法结构
if 条件1:
语句块1
elif 条件2:
语句块2
elif 条件3:
语句块3
else:
语句块4
💡 示例:BMI指数判断
tall = float(input('请输入身高(米):'))
weight = float(input('请输入体重(千克):'))
bmi = weight / (tall ** 2)
print(f'BMI = {bmi:.2f}')
if bmi < 18.5:
print('偏瘦')
elif bmi < 25:
print('正常')
elif bmi < 28:
print('超重')
elif bmi < 32:
print('肥胖')
else:
print('严重肥胖')
🩵 五、嵌套 if 结构
📘 概念
在一个 if 或 else 语句块中嵌入另一个 if 结构。
💡 示例:判断是否酒驾
answer = input("请问您喝酒了吗?(y/n):")
if answer.lower() == "y":
proof = eval(input('请输入酒精含量(mg/100ml):'))
if proof < 20:
print('未达到酒驾标准')
elif proof < 80:
print('酒驾,请勿驾驶')
else:
print('醉驾,非常危险!')
else:
print('您可以安全驾驶')
🩷 六、多个条件连接(and / or)
🧩 逻辑运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
| and | 同时为真才为真 | x > 0 and y > 0 |
两个条件都成立 |
| or | 只要一个为真 | x == 0 or y == 0 |
其中之一成立 |
💡 示例:登录系统
user = input('用户名:')
pwd = input('密码:')
if user == 'admin' and pwd == '123456':
print('登录成功')
else:
print('用户名或密码错误')
💚 七、if 三元表达式(条件表达式)
📘 语法结构
值1 if 条件表达式 else 值2
如果条件成立,返回值1,否则返回值2。
💡 示例
a, b = 10, 20
max_value = a if a > b else b
print(max_value) # 输出20
🧩 嵌套三元表达式(多条件判断)
基本结构
result = A if cond1 else B if cond2 else C
等价于:
if cond1:
result = A
elif cond2:
result = B
else:
result = C
示例:根据分数判断等级
score = 75
level = (
"优秀" if score >= 90
else "良好" if score >= 80
else "及格" if score >= 60
else "不及格"
)
print(level)
📖 等价于:
if score >= 90:
level = "优秀"
elif score >= 80:
level = "良好"
elif score >= 60:
level = "及格"
else:
level = "不及格"
✅ 三元表达式的使用建议
| 场景 | 推荐 | 说明 |
|---|---|---|
| 简单条件判断 | ✅ | 提高代码简洁度 |
| 多层嵌套判断 | 🚫 | 可读性差,建议用 if-elif |
| 可枚举状态 | ✅ | 建议用字典映射代替嵌套 |
💡 字典映射替代写法
level_dict = {
90: "优秀",
80: "良好",
60: "及格"
}
level = level_dict.get(score, "不及格")
✅总结速查表
| 需求 | 写法 | 示例 |
|---|---|---|
| 单条件 | A if cond else B |
x = 1 if flag else 0 |
| 双条件 | A if c1 else B if c2 else C |
"高" if s>90 else "中" if s>60 else "低" |
| 多层条件(推荐写法) | 使用括号增强可读性 | ("A" if c1 else ("B" if c2 else "C")) |
| 可扩展条件 | 使用字典映射 | status_map.get(code, "未知") |
💙 八、match 模式匹配结构(Python 3.10+)
📘 语法结构
match 变量:
case 值1:
执行语句1
case 值2:
执行语句2
case _:
默认执行语句
💡 示例
# 1. 判断年龄
age = eval(input('请输入您的年龄:'))
match age:
case x if x < 10:
print(f'< 10岁:{x},您是儿童')
case 10:
print('10岁,您是少年')
case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
print('11~18岁,您是青少年')
case _:
print(f'{age}岁,您是成年人')
# 2. 判断成绩等级
score = input('请输入您的成绩等级:')
match score:
case 'A' | 'a':
print('优秀')
case 'B' | 'b':
print('良好')
case 'C' | 'c':
print('及格')
case 'D' | 'd':
print('差')
case _:
print('输入的成绩等级无效')
🩶 九、选择结构逻辑总览(思维导图)
选择结构
├── 单分支 if
├── 双分支 if...else
├── 多分支 if...elif...else
├── 嵌套 if
├── 多条件连接 and/or
├── 三元表达式
└── match 模式匹配
🧩 十、总结对比表
| 结构类型 | 语法简洁度 | 可读性 | 典型场景 | Python版本 |
|---|---|---|---|---|
| if | 简单 | 高 | 单条件判断 | 所有版本 |
| if...else | 中等 | 高 | 两种结果 | 所有版本 |
| if...elif...else | 中等 | 高 | 多分支判断 | 所有版本 |
| 嵌套 if | 一般 | 中等 | 多层逻辑判断 | 所有版本 |
| 三元表达式 | 高 | 中等 | 一行条件赋值 | 所有版本 |
| match | 高 | 高 | 枚举匹配 | Python 3.10+ |
🏁 十一、一句话总结
选择结构 = 程序的“决策机制”
它让程序能像人一样,根据条件选择不同的执行路径。✨
if决定逻辑
✨elif增加分支
✨else兜底处理
✨match简化枚举
✨ 三元表达式让代码更优雅

浙公网安备 33010602011771号