文章目录

  • 1 Python 选择结构概述
  • 2 if else 语句的使用
  • 2.1 使用格式
  • 2.2 执行顺序
  • 2.3 举例说明
  • 3 assert 断言语句

1 Python 选择结构概述

在 Python 中,可以使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码,这称为选择结构或分支结构。

对于代码,如果只有顺序结构(请参见博文《Python 顺序结构详解》),在很多具体情景中是不够用的,程序必须做一些必要的判断。

例子非常多,就拿大家基本上都玩过的王者荣耀来说,游戏有个防沉迷的功能,程序会判断一天内游戏上线的时间,如果上线时间过长,就不允许再进入游戏了。

2 if else 语句的使用

2.1 使用格式

有三种使用格式,如下所示:

# 第一种
if 表达式:
    代码块
# 第二种
if 表达式:
    代码块 1
else:
    代码块 2
# 第三种
if 表达式 1:
    代码块 1
elif 表达式 2:
    代码块 2
elif 表达式 3:
    代码块 3
... # 其它 elif 语句
else:
    代码块 n

对以上格式说明,

  • 表达式:形式不限,可以是一个值或变量,也可以是一个复杂的语句。只要表达式有一个结果,不管这个结果是什么类型,Python 都能判断它是“真”还是“假”。
  • 代码块:具有相同缩进的多行代码组成。
  • :ifelifelse 语句的最后都要加上分号;,不可省略。
  • 选择结构支持嵌套,考虑可读性的话,不建议嵌套太多层。

2.2 执行顺序

  • 第一种:如果表达式成立(真),就执行后面的代码块;如果表达式不成立(假),就什么也不执行。
  • 第二种:如果表达式成立,就执行 if 后面紧跟的代码块1;如果表达式不成立,就执行 else 后面紧跟的代码块2。
  • 第三种:Python 会从上到下逐个判断表达式是否成立,一旦遇到某个成立的表达式,就执行后面紧跟的语句块;此时,剩下的代码就不再执行了,不管后面的表达式是否成立。如果所有的表达式都不成立,就执行 else 后面的代码块。

注意:对于选择结构,或叫分支结构,不管有多少个分支,都只能执行一个分支,或者一个也不执行,不能同时执行多个分支。

2.3 举例说明

三种格式举例,如下所示:

例一,第一种格式

# 第一种格式:if 语句
count = 11  # 游戏在线时间(单位:小时)
if count >= 10:
    print('您在线时间过长,请休息吧!')

运行结果:

您在线时间过长,请休息吧!

例二,第二种格式

# 第二种格式:if else 语句
count = 8  # 游戏在线时间(单位:小时)
if count >= 10:
    print('您在线时间过长,请休息吧!')
else:
    print('正常游戏!')

运行结果:

正常游戏!

例三,第三种格式

# 第三种格式:if else 语句
count = 9  # 游戏在线时间(单位:小时)
if count >= 10:
    print('您在线时间过长,请休息吧!')
elif count >= 9:
    print('提示:您已经在线 9 小时了!')
elif count >= 8:
    print('提示:您已经在线 8 小时了!')
else:
    print('正常游戏!')

运行结果:

提示:您已经在线 9 小时了!

3 assert 断言语句

使用格式如下所示:

assert 表达式

对以上格式说明,

  • Python assert 语句,又称断言语句,用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误。
  • 可以看做是功能缩小版的 if 语句。
  • assert 语句通常用于检查用户的输入是否符合规定,或用作程序初期测试和调试过程中的辅助工具。因为,与其让程序在晚些时候崩溃,不如在错误条件出现时,就直接让程序崩溃,这有利于我们对程序排错,提高程序的健壮性。

举例如下所示:

例一,

hour = int(input())  # 一天小时数,是不大于24小时的
assert 0 <= hour <= 24  # 进行判断,要符合现实规律
print('今天工作了:', hour, '小时。')

运行结果:

12
今天工作了: 12 小时。

例二,

hour = int(input())  # 一天小时数,是不大于24小时的
assert 0 <= hour <= 24  # 进行判断,要符合现实规律
print('今天工作了:', hour, '小时。')

运行结果:

25
Traceback (most recent call last):
  File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 43, in <module>
    assert 0 <= hour <= 24  # 进行判断,要符合现实规律
AssertionError