Python 基础知识 之 选择结构(if、elif、else、三元表达式、match)

选择结构(Selection Structure) 是程序设计中最常用的结构之一,用于根据条件决定执行哪一段代码。


🩵 一、选择结构的基本概念

选择结构用于 让程序根据条件做出不同的选择

Python 提供以下几种常见的选择结构:

类型 说明
单分支结构 只在条件成立时执行某段代码
双分支结构 条件成立执行A,否则执行B
多分支结构 根据多个条件选择不同分支
嵌套结构 在条件中再次判断
三元表达式 简写形式的单行 if-else
match 结构 Python 3.10 新增的模式匹配结构(类似 switch)

🩷 二、单分支结构 if

📘 语法结构

if 条件表达式:
    语句块

⚙️ 执行逻辑

  • 当条件成立(True)时,执行语句块;

  • 当条件不成立(False)时,跳过语句块。

⚠️ 注意事项

  1. 条件表达式后要加 冒号(:)

  2. 缩进 用来决定语句块范围(通常为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 简化枚举
✨ 三元表达式让代码更优雅


posted @ 2025-01-12 19:15  kyle_7Qc  阅读(874)  评论(0)    收藏  举报