流程控制
- 顺序执行: 从上往下依次执行。(默认)
- 分支结构: 根据条件选择性的执行或不执行某段代码。
- 循环结构: 让指定的代码重复执行。
分支结构
python中实现分支结构的方式只有一种:if
- if单分支结构: 满足某个条件执行某个操作,不满足就不执行。
- 语法:
"""
if 条件语句:
代码块
说明:
if - 关键字,固定写法
条件语句 - 可以满足任何有结果的表达式;如:独立的数据、运算表达式(不能赋值运算)、函数调用表达式
: - 固定写法
代码块 - 和if保持一个缩进的一条或多条语句;满足条件才会执行的一条或多条语句。(至少要一条语句)
"""
- 用法:
# 独立的数据
if 1:
print(1)
if not []:
print([])
# 运算表达式
x = 3
y = 4
if x < y:
print('{}<{}'.format(x, y))
"""
1
[]
3<4
"""
- 执行过程: 先判断条件语句是否位True,为True就执行if语句中的代码块,否则就不执行。(如果不是布尔值就先转换成布尔值再判断)
- if多分支结构: 从上往下依次执行分支结构,执行到成立的条件,执行其代码块后,跳出分支结构。
分支结构中没有成立的条件,看有无else,有else,执行else里面的代码块后,跳出分支结构。没有else,直接跳出循环
- 语法:
"""
if 条件1:
代码块1:
elif 条件2:
代码块2:
...
else:
代码块n
说明:
elif -关键字,固定写法
结构中elif可以根据情况有1个或多个;else也可以根据情况或没有。
"""
- 用法:
grade = float(input('请输入你的成绩:'))
if 0 <= grade < 60:
print('成绩为F')
elif 60 <= grade < 70:
print('成绩为D')
elif 70 <= grade < 80:
print('成绩为C')
elif 80 <= grade < 90:
print('成绩为B')
elif 90 <= grade <= 100:
print('成绩为A')
else:
print('数据有误!')
"""
请输入你的成绩:110
数据有误!
"""
- 执行过程: 从上往下依次执行,执行到成立的条件,执行相应的代码块后,跳出分支结构。没有成立的条件,有else执行else里面的代码块,没有else不执行任何代码块,直接跳出分支结构。
pass
- 当空语句,是为了保持程序结构的完整性。
- pass 不做任何事情,一般用做占位语句。
循环结构
python中实现循环的方式:for
、while
- for循环:
- 语法:
"""
for 变量 in 序列:
循环体
说明:
for - 关键字,固定写法
变量 - 可以是已经赋值过的对象,也可以是没有赋值过的变量
in - 关键字,固定写法
序列 - 任何容器型数据类型的数据;`字符串`、`列表`、`元组`、`集合`、`字典`、`迭代器`、`生成器`、range……
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句;(需要被重复执行的 一条或多条语句)
"""
- 执行过程: 让变量去序列中取值,一个一个的取,去完位置,每取一个值执行依次循环体。(for 循环的循环次数,由序列中元素的个数决定)
range函数:
- 用来产生指定范围内的数字序列
-
rang(n)
:产生0~(n-1)的数字序列 -
rang(m,n)
:产生m~(n-1)的数字序列*(左开右闭区间)* - range(m,n,step):
step
步长,默认为1。
while循环:
- 语法:
"""
while 条件语句:
循环体
说明:
while - 关键字,固定写法
条件语句 - 任何有结果的表达式;独立的数据,运算表达式(不能有赋值运算),函数调用表达式
: - 固定写法
循环体 - 和while保持一个缩进的一条或多条语句;需要重复执行的语句;
"""
- 执行过程:先判断条件语句是否为True,如果为True就执行依次循环体,执行完再判断条件语句是否为True,为True再执行循环体,以此类推,直到条件不成立为止。