文章目录
- 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 都能判断它是“真”还是“假”。 -
代码块
:具有相同缩进的多行代码组成。 -
:
:if
、elif
、else
语句的最后都要加上分号;
,不可省略。 - 选择结构支持嵌套,考虑可读性的话,不建议嵌套太多层。
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