Python程序中语句执行的顺序包括三种基本控制结构:顺序结构、选择结构、循环结构。
顺序结构
程序中语句执行的基本顺序按各语句出现位置的先后顺序执行,称为
顺序结构
选择结构
选择结构可以很据条件来控制代码的执行分支,也叫分支结构。Python使用
if
语句来实现分支结构。
分支结构的形式
分支结构包含多种形式:单分支,双分支,多分支
单分支结构
if
语句单分支结构的语法形式如下:
if 条件表达式/(条件表达式):
语句/语句块
- 条件表达式:可以是关系表达式、逻辑表达式、算术表达式等
- 语句/语句块:可以是单个语句,也可以是多个语句。多个语句的缩进必须对齐一致。当条件表达式的值为真(True)时,执行
if
后的语句(块),否则不做任何操作,控制转到if
语句的结束点。
条件表达式最后评价为bool值:Ture(真)或False(假)。
Python评价方法如下,如果表达式结果为:数值类型(0)、空字符串(“”)、空元组(())、空列表([])、空字典({})
则其bool值为False(假),否则bool值为True(真)
双分支结构
#if语句双分支结构的语法如下:
if 条件表达式/(条件表达式):
语句/语句块1
else:
语句/语句块2
当条件表达式的值为真(True)时,执行
if
后的语句/语句块1,否则执行语句/语句块2Python提供了下列条件表达式,来实现等价于其他语言的
三元运算符((条件)?语句1:语句2)
的功能
条件为真时的值 if (条件表达式) else 条件为假时的值
#如果x>0,则y=x,否则y=0
y=x if (x>=0) else 0
多分支结构
该语句的作用是根据不同的条件表达式的值确定执行哪个语句(块)
#if语句多分支结构语法形式:
if (条件表达式1):
语句/语句块1
elif (条件表达式2):
语句/语句块2
.
.
.
elif (条件表达式n):
语句/语句块n
[else:
语句/语句块n+1]
循环结构
循环结构用来重复执行一条或多条语句。使用循环结构,可以减少程序重复书写的工作量,Python使用
for
语句和while
语句来实现循环结构
可迭代对象
可迭代对象一次返回一个元素,因而适用于循环。Python包括以下几种可可迭代对象。
- 系列(sequence),例如,字符串(str)、列表(list)、元组(tuple)
- 字典(dict)
- 文件对象
- 迭代器对象(iterator)
- 生成器函数(generator)
迭代器是一个对象,表示可迭代的数据集合,包括方法
__int__()
和__next__()
,可实现迭代功能
生成器是一个函数,使用yield
语句,每次产生一个值,也可以用于循环迭代
range对象
Python3内置对象
range
是一个迭代器对象,迭代时产生指定范围的数字序列。其格式为:range(start,stop[,step])
range返回的数值系列从
start
开始,到stop
结束,不包含stop
(左闭右开)。如果指定了可选步长step
,则序列按步长step
增长
注意:Python2中的range的类型为函数,为生成器;Python3中的range的类型为类,是一个迭代器
for循环
for
语句用于遍历可迭代对象集合中的元素,并对集合中的每个元素执行一次相关的嵌入语句。当集合中的所有元素完成迭代后,并控制传递给for
之后的下一个语句
#for语句的格式
for 变量 in 对象集合:
循环体语句/语句块
while循环
与for循环一样,while也是一个预测试的循环,但是while在循环开始前,并不知道重复执行循环语句序列的次数。while语句按不同条件执行循环语句(块)零次或多次
#while循环语句格式:
while (条件表达式):
循环体语句/语句块
循环的嵌套
在一个循环体内又包含另一个完整循环结构,称为循环的嵌套。这种语句结构称为多重循环结构。内层循环中还可以包含新的循环,形成多层循环结构
在多层循环中,两种循环语句(
for
循环,while
循环)可以相互嵌套。多重循环的循环次数等于每一重循环次数的乘积
break语句
break语句用于退出
for
循环,while
循环,即提前结束循环,接着执行循环语句的后继语句注意:当多个
for
,while
语句彼此嵌套时,break语句只应用于最里层的语句,即break语句只能跳出最近的一层循环
continue语句
continue语句类似break,也必须在
for
,while
循环中使用。但它结束本次循环,即跳过循环体内自continue
下面尚未执行的语句,返回到循环的起始处,并根据循环条件判断是否执行下一次循环。continue语句与break语句的区别在于:
continue
语句仅结束本次循环,并返回到循环的起始处,循环条件满足的话就开始执行下一次循环,而break语句则是结束循环,跳转到循环的后继语句执行与break相似,当多个for,while语句彼此嵌套时,continue语句只应用于最里层的语句
else子句
for、while语句可以附带一个else子句(可选)。如果for、while语句没有被
break
语句中止,则会执行else子句,否则不执行
#for循环附带else语句
for 变量 in 对象集合:
循环体语句(块)1
else:
语句(块)2
#while循环附带else语句
while (条件表达式):
循环体语句(块)1
else:
语句(块)2