前言

在生活中,我们总是要做出许多选择,程序也是一样。比如下面的例子:

  • 如果输入的用户名和密码正确,提示登录成功,否则,提示登录失败。
  • 如果考试成绩大于等于60分,则及格,否则不及格。

以上例子中的判断,就是程序中的选择语句,也称为条件语句,即按照条件选择执行不同的代码片段。Python中选择语句主要有 3 种形式,分别为:if 语句if…else 语句if…elif…else 多分支语句。今天我们就详细来看看这3种选择语句的用法。


一、最简单的 if 语句

Python中使用 if 保留字来组成选择语句,简单的语法格式如下:

if 表达式:
	语句块

如果表达式为真,则执行 “语句块”;如果表达式为假,就跳过 “语句块”,继续执行后面的语句,这种形式的 if 语句相当于汉语里的关联词语 “如果…就…”,其流程图如下图所示:

python如何选择特定几行的数据 python中选择语句_开发语言


接下来看一下 if 语句在代码中的实际应用,代码如下:

score = int(input("请输入学生考试成绩: "))  # 输入学生考试成绩
if score >= 60:  # 如果输入的成绩大于等于60,则执行冒号下面的语句块,否则跳过不执行
    print("恭喜你,考试及格啦!!!")
print("程序执行完毕")  # 最后打印输出"程序执行完毕"

上述代码执行后有两种结果,一种是表达式结果为真(即满足条件),则执行冒号下面的语句块,结果如下图所示:

python如何选择特定几行的数据 python中选择语句_python_02

另一种是表达式结果为假(即不满足条件),则跳过不执行冒号下面的语句块,结果如下图所示:

python如何选择特定几行的数据 python中选择语句_python如何选择特定几行的数据_03

python如何选择特定几行的数据 python中选择语句_python如何选择特定几行的数据_04

注意:当表达式结果为假时,程序只是会跳过不执行冒号(:)下面的语句块,但是会继续往下执行代码剩余部分。

讲到这里,有小伙伴可能会有疑虑:我怎么区分哪些是语句块,哪些是正常代码呢?我先把上述代码中的语句块和正常代码给大家标注出来,如下图:

python如何选择特定几行的数据 python中选择语句_流程控制语句_05

我们可以看到,正常代码和表达式之间是平等关系,代码开头是没有缩进的,而语句块和表达式之间是隶属关系,在Python中隶属关系是用冒号+缩进表示的。至于代码缩进规则在此就不做详细赘述

python如何选择特定几行的数据 python中选择语句_开发语言_06

说明:使用if语句时,如果隶属的语句块只有一条语句,那么语句块也可以直接写到冒号 “:” 的右侧。

例如下图代码所示:

python如何选择特定几行的数据 python中选择语句_流程控制语句_07


二、if…else 语句

如果遇到只能二选一的条件,比如:我们在面试填写个人简历的时候,性别只能填男或者女。诸如此类的情况在生活中非常多,Python中就提供了 if…else 语句来解决类似问题,其语法格式如下:

if 表达式:
    语句块1
else:
    语句块2

如果表达式为真,则执行 if 后面的语句块,否则,执行 else 后面的语句块,这种形式的选择语句相当于汉语里的关联词语 “如果…否则…”,其流程图如下图所示:

python如何选择特定几行的数据 python中选择语句_开发语言_08

接下来看一下 if…else 语句在代码中的实际应用,代码如下:

score = int(input("请输入面试者笔试成绩: "))
if score >= 60:
    print("恭喜你,被录用了!!!")
else:
    print("不好意思,你与我们的需求不符。")

代码运行后结果有两种,一种是表达式结果为真,如下:

python如何选择特定几行的数据 python中选择语句_流程控制语句_09

一种是表达式结果为假,如下:

python如何选择特定几行的数据 python中选择语句_流程控制语句_10

python如何选择特定几行的数据 python中选择语句_流程控制语句_11

说明:if…else 语句可以使用条件表达式进行简化。

条件表达式的语法格式如下:

语句块1 if 表达式 else 语句块2

上述语法格式中,语句块1是 if 后面的表达式结果为真时执行,语句块2是表达式结果为假时执行。用法实例如下图代码所示:

python如何选择特定几行的数据 python中选择语句_python_12

python如何选择特定几行的数据 python中选择语句_python如何选择特定几行的数据_13

注意:在使用 else 语句时,else 一定不可以单独使用,它必须和保留字 if 一起使用。

例如下图所示代码就是错误的:

python如何选择特定几行的数据 python中选择语句_开发语言_14


三、if…elif…else 语句

平时在网上购物时,通常都有多种付款方式供我们选择,比如微信、支付宝、银行卡等等,这时用户就需要从多个选项中选择一个。在开发程序时,如果是遇到多选一的情况,则可以使用 if…elif…else 语句,该语句是一个多分支选择语句。

if…elif…else 语句的语法格式如下:

if 表达式1:
    语句块1
elif 表达式2:
    语句块2
elif 表达式3:
    语句块3

...

else:
    语句块n

如果表达式为真,则执行语句;而如果表达式为假,则跳过该语句,进行下一个 elif 的判断;只有在所有表达式都为假的情况下,才会执行 else 中的语句。if…elif…else 语句的流程如下图所示:

python如何选择特定几行的数据 python中选择语句_流程控制语句_15

python如何选择特定几行的数据 python中选择语句_if 选择语句_16

注意:if 和 elif 都需要判断表达式的真假,而 else 则不需要判断;另外,elif 和 else 都必须与 if 一起使用,不能单独使用。

接下来看一下 if…elif…else 多分支语句在代码中的实际应用,代码如下:

print("在古希腊神话中,玫瑰集爱情与美丽于一身,所以人们常用玫瑰来表达爱情。")
print("但是不同朵数的玫瑰花代表的含义是不同的。")
print("---------------------------------------------------------")
# 获取用户输入的朵数,并转为整数
num = int(input("输入你想送几朵玫瑰花,小十一会告诉你含义: "))
if num == 1:  # 判断是否为1朵
    print("1朵: 你是我的唯一!!!")
elif num == 3:  # 判断是否为3朵
    print("3朵: I Love You!!!")
elif num == 7:  # 判断是否为7朵
    print("7朵: 我偷偷的爱着你!!!")
elif num == 10:  # 判断是否为10朵
    print("10朵: 十全十美!!!")
elif num == 11:  # 判断是否为11朵
    print("11朵: 一心一意!!!")
elif num == 99:  # 判断是否为99朵
    print("99朵: 天长地久!!!")
elif num == 108:  # 判断是否为108朵
    print("108朵: 求婚!!!")
else:  # 如果上述条件都不满足,则执行下面语句
    print("小十一也不知道了,可以考虑送1朵、3朵、7朵、10朵、11朵、99朵、108朵哦!")

代码运行之后就有多种可能的结果,凡是满足上面任意一个表达式,则会执行所属的语句块,如果均不满足,则会执行else下面的语句块。比如下图运行结果所示:

python如何选择特定几行的数据 python中选择语句_开发语言_17


四、if 语句的嵌套

前面介绍了 3 种形式的 if 选择语句,这 3 种形式的选择语句之间都可以相互嵌套。

在最简单的 if 语句中嵌套 if…else 语句,形式如下:

if 表达式1:
    if 表达式2:
        语句块1
    else:
        语句块2

在 if…else 语句中嵌套 if…else 语句,形式如下:

if 表达式1:
    if 表达式2:
        语句块1
    else:
        语句块2
else:
    if 表达式3:
        语句块3
    else:
        语句块4

python如何选择特定几行的数据 python中选择语句_if 选择语句_18

说明:if 选择语句可以有多种嵌套方式,开发程序时,可以根据自身需要选择合适的嵌套方式,但一定要严格控制好不同级别代码块的缩进量。