在实际生活中经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。Python中有一种特殊的语句叫做选择结构语句,需要对一些条件作出判断,从而决定执行哪一段代码。
一、选择结构概述
- 以双分支结构为例进行说明
![64177dc5eb7767f959a9b1eac50168cc.png](https://i-blog.csdnimg.cn/blog_migrate/aeb8978a94a3e0c7402289dc5d1b79b0.jpeg)
- 程序发生分支,根据判断框内的条件是否被满足来选择执行一块还是执行 B 块。无论条件是否被满足,只能选择执行一或 B 中之一,不能执行完一块后又执行 B 块无论走哪条路径,都要经过 C 点,然后脱离本选择结构框。
根据处理不同情况的个数,我们下面分成单分支结构、双分支结构与多分支结构来进行讲解。
二、单分支结构
(一)语法格式
if 表达式:
语句块
(二)执行情况
![bbee6593c798542518785700bf2a3f1e.png](https://i-blog.csdnimg.cn/blog_migrate/373a9e3f3e30f2c7f9e73f3d04478705.jpeg)
- 表达式可以是任意表达式,如果表达式计算结果为True,那么执行语句块,否则什么也不做。
- 如果是算术表达式,那么结果非零就是True,结果为零就是False
- 如果是字符串表达式,那么非空字符串就是True,空字符串就是False
三、双分支结构
(一)语法格式
if 表达式:
语句块1
else:
语句块2:
(二)执行情况
![543e500df610a647f67fac09f270983a.png](https://i-blog.csdnimg.cn/blog_migrate/6b7b4e5ab824d581cf1d6260a16f0094.jpeg)
- 双分支结构就是我们通常讲的“花开两朵,各表一枝”或者“鱼和熊掌不可兼得”。使用if-else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果满足条件,则执行if后面的语句块,否则,执行else后面的语句块,这种形式的选择语句相当于汉语里的关联词语“如果……否则……”。
(三)案例演示
任务1、判断令狐冲大侠喝酒杯数
- 在单分支结构部分,我们已经处理过这个任务,但是有点不完美,当用户没有猜对时,程序没有给予用户一个提示,而是什么都没有输出,显得不太友好,下面我们采用双分支结构来完善。
- 修改程序 - 判断令狐冲大侠喝酒杯数
# -*- coding: utf-8 -*-
"""
功能:判断令狐冲大侠喝酒杯数
"""
print('令狐冲大侠说他喝了若干杯酒,
杯数满足条件:三三数之剩二,
五五数之剩三,七七数之剩二,
问令大侠究竟喝了多少杯酒?')
cups = int(input('你认为令大侠喝了几杯?请输入杯数:'))
if cups % 3 == 2 and cups % 5 == 3 and cups % 7 == 2:
print('朋友,你说对了,令大侠确实喝了{}杯酒!'.form