Python基础(4)| 详解程序选择结构:单分支、双分支与多分支逻辑(附代码)

前言

欢迎来到《跟着娟子姐学Python》第4章的进阶学习!在上一节,我们学习了程序的"顺序结构",代码像流水线一样从上往下执行。但在实际开发中,程序往往需要根据不同情况执行不同操作。例如:年龄大于18岁是成年人,否则是未成年人。这就需要用到我们今天要学的选择结构(分支结构)

一、初识选择结构

选择结构是根据条件的真假,来决定程序执行哪一段代码。在Python中,选择结构主要分为三种:

  1. 单分支结构:满足条件就执行,不满足就跳过。
  2. 双分支结构:满足条件执行A,否则执行B。
  3. 多分支结构 :满足条件1执行A,满足条件2执行B,......,否则执行Z。
    我们可以用一个简单的流程图来表示,如图所示:

二、单分支结构(if 语句)

单分支结构是最简单的逻辑,对应中文的"如果......就......"。
语法格式:

python 复制代码
if 表达式:
    语句块
  • 表达式:可以是逻辑运算、比较运算,或者是一个单纯的变量(利用其布尔值)。
  • 语句块 :必须缩进(通常4个空格),表示在if满足时执行的代码。
    【示例4-2】单分支结构实战
    下面代码演示了多种判断场景:
python 复制代码
# coding:utf-8
# (1) 比较运算符判断
number = eval(input('请输入您的6位中奖号码:'))
if number == 987654:
    print('恭喜您,中奖了')
    
if number != 987654:
    print('您未中本期大奖')
# (2) 利用对象的布尔值判断(奇数偶数)
n = 98 
if n % 2:  # 98%2的余数为0,布尔值为False,取反后为True(这里代码有误,应为 not n%2)
    print(n, '为奇数')
    
if not n % 2: # 余数为0,布尔值为False,not False为True
    print(n, '为偶数')

运行结果:

【知识点补充】

在Python中,所有对象都有一个布尔值。数字0、空字符串、None等的布尔值为False,其他为Trueif 语句后面可以直接跟一个变量,如 if flag:

三、双分支结构(if...else...)

双分支结构对应中文的"如果......否则......",必定会执行其中一块代码。
语法格式:

python 复制代码
if 表达式:
    语句块1
else:
    语句块2

【示例4-3】双分支结构实战

我们可以用更简洁的方式写上面的中奖判断:

python 复制代码
# coding:utf-8
number = eval(input('请输入您的6位中奖号码:'))
if number == 987654:
    print('恭喜您,中奖了')
else:
    print('您未中本期大奖')

运行结果:

【进阶写法:条件表达式】

如果是简单的赋值操作,可以使用"三元运算符"来简化if...else,使代码更Pythonic:

python 复制代码
# result = "值1" if 条件 else "值2"
# 上面示例可写成:
result = '恭喜您中奖了' if number == 987654 else '您未中本期大奖'
print(result)
# 甚至直接一行输出:
print('恭喜您中奖了' if number == 987654 else '您未中本期大奖')
# 两种方式等价,更推荐第一种,可读性更好。

四、多分支结构(if...elif...else...)

当需要进行多次判断时,就需要用到多分支结构。它类似其他语言中的switch...case,但更灵活。
语法格式:

python 复制代码
if 表达式1:
    语句块1
elif 表达式2:
    语句块2
...
elif 表达式n:
    语句块n
else:
    语句块n+1
  • 执行逻辑 :从上往下判断,一旦某个elif条件为True,就执行对应的语句块,并直接结束整个分支结构,后续所有判断都会被跳过。
  • else 是可选的,相当于"兜底"。
    【示例4-4】多分支结构实战:成绩等级划分
    这是一个非常经典的案例:
python 复制代码
# coding:utf-8
score = eval(input('请输入您的成绩:'))
if score < 0 or score > 100:
    print('成绩有误')
elif 0 <= score < 60:
    print('E')
elif 60 <= score < 70:
    print('D')
elif 70 <= score < 80:
    print('C')
elif 80 <= score < 90:
    print('B')
else:
    print('A')

运行结果:

五、结构嵌套:复杂逻辑的实现

ifelifelse的语句块中,可以再包含一个完整的if结构,这叫分支结构的嵌套 。例如,在判断喝酒了之后,还要判断酒精含量。
【示例4-5】嵌套if:酒驾判断

python 复制代码
# coding:utf-8
answer = input('请问,您喝酒了吗?')
if answer == 'y':  # 外层判断
    proof = eval(input('请输入酒精含量:'))
    if proof < 20:  # 内层判断1
        print('构不成酒驾,祝您一路平安')
    elif proof < 80:  # 内层判断2
        print('已构成酒驾标准,请不要开车')
    else:  # 内层判断3的else
        print('已达到醉驾标准,请千万不要开车')
else:  # 外层判断的else
    print('你走吧,没你啥事儿')

运行结果(喝酒了的情况):

运行结果(没喝酒的情况):

六、逻辑运算符的连接

在实际开发中,判断条件通常很复杂,需要使用and(与)和or(或)连接多个条件。

  • and:所有条件都为真,结果才为真。
  • or :只要有一个条件为真,结果就为真。
    【示例4-6】模拟用户登录(使用and)
python 复制代码
# coding:utf-8
user_name = input('请输入您的用户名:')
pwd = input('请输入您的密码:')
if user_name == 'ysj' and pwd == '888888':
    print('登录成功')
else:
    print('用户名或密码不正确')


【示例4-7】成绩有效性判断(使用or)

python 复制代码
# coding:utf-8
score = eval(input('请输入您的成绩:'))
if score < 0 or score > 100:
    print('成绩无效')
else:
    print('您的成绩为:', score)

七、本章总结

  • 选择结构:让程序拥有了"决策"能力。
  • if:单分支,条件真则执行。
  • if...else...:双分支,二选一。
  • if...elif...else...:多分支,多选一。
  • 嵌套if:处理复杂分层逻辑。
  • 逻辑运算符andor 用于组合条件。
    下一节,我们将进入更激动人心的循环结构,让程序实现"重复劳动"!

点赞收藏,不迷路!


相关推荐
数据光子17 小时前
【YOLO数据集】国内交通信号检测
人工智能·python·安全·yolo·目标检测·目标跟踪
ONLYOFFICE17 小时前
入门指南:远程运行 ONLYOFFICE 协作空间 MCP 服务器
运维·服务器·github·onlyoffice
携欢17 小时前
portswigger靶场之修改序列化数据类型通关秘籍
android·前端·网络·安全
百***787517 小时前
2026 优化版 GPT-5.2 国内稳定调用指南:API 中转实操与成本优化
开发语言·人工智能·python
Dovis(誓平步青云)17 小时前
《Linux 核心 IO 模型深析(中篇):探索Cmake与多路转接的高效实现poll》
linux·运维·服务器·数据库·csdn成长记录
EveryPossible17 小时前
cpu展示示例
服务器
Java 码农17 小时前
RabbitMQ集群部署方案及配置指南01
linux·服务器·rabbitmq
Amelia11111117 小时前
day48
python
小北方城市网17 小时前
第 6 课:云原生架构终极落地|K8s 全栈编排与高可用架构设计实战
大数据·人工智能·python·云原生·架构·kubernetes·geo