购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2
选择语句

在生活中,我们总是要做出很多的选择,程序设计也是一样。

选择语句也称为条件语句,即按照条件选择执行不同的代码块。Python中选择语句主要有3种形式,分别为if语句、if…else语句和if…elif…else多分支语句。

2.2.1 if语句

if是Python中的关键字,同时也被用来组成选择语句,其语法格式如下:

    if表达式:
    语句块

其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如:a>b and a!=c),如果表达式为真,则执行语句块;如果表达式为假,就跳过语句块,继续执行后面的语句。

2.2.2 if…else语句

如果遇到只能二选一的情况,例如,某计算机专业学生进入公司进行岗位选择,在人工智能和Web开发中二选一,Python提供了if…else语句解决类似问题,其语法格式如下:

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

使用if…else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果满足条件,则执行if后面的语句块,否则,执行else后面的语句块。这种形式的选择语句相当于汉语里的关联词语“如果……否则……”。

if…else语句可以使用条件表达式进行简化,如下面的代码:

    a=-9
    if a>0:
        b=a
    else:
        b=-a
    print(b)

可以简写成:

    a=-9
    b=a if a>0 else -a
    print(b)

上段代码主要实现求绝对值的功能,如果a>0,就把变量a的值赋值给变量b,否则将-a赋值给变量b。使用条件表达式的好处是可以使代码简洁,并且有一个返回值。

程序中使用if…else语句时,如果出现if语句多于else语句的情况,那么else语句将会根据缩进确定该else语句属于哪个if语句,如下面的代码:

    a=-1
    a>=0:
    if a>0:
        print('a大于0')
    else:
        print('a等于0')

上面的语句将不输出任何提示信息,这是因为else语句属于第3行的if语句,所以当a小于0时,else语句将不执行。而如果将上面的代码修改如下:

    a=-1
    if a>=0:
        if a>0:
            print('a大于0')
    else:
        print('a小于0')

将输出提示信息“a小于0”。此时,else语句和第2行的if语句配套使用。

2.2.3 if…elif…else语句

在开发程序时,如果遇到多选一的情况,则可以使用if…elif…else语句,该语句是一个多分支选择语句,通常表现为“如果满足某种条件,就会进行某种处理;否则,如果满足另一种条件,则执行另一种处理……”。if…elif…else语句的语法格式如下:

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

使用if…elif…else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果表达式为真,执行语句;如果表达式为假,则跳过该语句,进行下一个elif的判断;只有在所有表达式都为假的情况下,才会执行else中的语句。if…elif…else语句的流程如图2.2所示。

图2.2 if…elif…else语句的流程图

2.2.4 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

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

【例2.1】判断是否酒后驾车。

规定:车辆驾驶人员血液中的酒精含量小于20mg/100ml的不构成饮酒驾驶行为,酒精含量大于或等于20mg/100ml、小于80mg/100ml的为饮酒驾车,酒精含量大于或等于80mg/100ml的为醉酒驾车。现编写一段Python代码判断是否酒后驾车。

通过使用嵌套的if语句实现根据输入的酒精含量值判断是否酒后驾车的功能,代码如下: yQoQ+0nhbaiqIbfTAWCqkOYy+ysXiqoQVWZ3a/BU/UtYipalmwtUQ/9ejRsAz3G4

    print("\n为了您和其他人的安全,严禁酒后开车!\n")
    proof=int(input("请输入每100毫升血液的酒精含量:"))
    if proof<20:
        print("\n不构成饮酒行为,可以开车")
    else:
        if 80>proof>=20:
            print("\n已经达到酒驾标准,请不要开车")
        else:
            print("\n已经达到醉驾标准,千万不要开车")
点击中间区域
呼出菜单
上一章
目录
下一章
×