目录
第四章 控制语句
选择结构
单分支选择结构
if 条件表达式: (注意:表达式后面有冒号!)
语句/语句块
条件表达式:逻辑表达式、算术表达式、关系表达式
语句:可以一句或者多句,但是缩进要一致
1.在选择和循环结构中,条件表达式为False的情况:
False、0、0.0、空值None(空值指的是对象)、空序列对象(空列表、空字符串、空元组、空集合、空字典)、空range对象、空迭代对象
2.条件表达式中不能有赋值运算符=,有=会报错,可以有==
双分支选择结构
if 条件表达式:
语句1/语句块1
else:
语句2/语句块2
三元条件运算符
条件为真时的值 if (条件表达式) else 条件为假时的值
多分支选择结构
if 条件表达式:
语句1/语句块1
elif 条件表达式:
语句2/语句块2
...
[else:
语句n/语句块n]
选择结构嵌套
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
表达式4
循环结构
while 循环
while 条件表达式:
循环体语句
for循环
for 变量 in 可迭代对象(序列)
循环体语句
可迭代对象包括:
1.序列:字符串、列表、元组和字典
2.迭代器对象iterator
3.生成器对象generator
4.文件对象
break语句
用来结束最近的一层循环
continue语句
结束本次循环,进行下一次,也是用于最近一次循环
else语句
不是选择结构那个else
如果for和while语句没有被break中断,则会在循环完成后执行一个else语句,否则不执行
while 条件表达式:
循环体语句
else:
语句块
for语句相同
循环代码的优化
三个原则:
1.尽量减少循环内部不必要的计算
2.嵌套循环,尽量减少内部循环的计算
3.局部变量查询较快,尽量使用局部变量
其他优化手段:
1.连接多个字符串,尽量使用join()而不是+
2.列表进行插入和删除,尽量在尾部
使用zip()并行迭代
对多个序列并行迭代,zip()函数在最短序列用完时就会停止
推导式创建序列
推导式是从一个或者多个迭代器快速创建序列的方法。可以将条件判断和循环结合
列表推导式
通过列表推导式生成列表对象
[表达式 for item in range 可迭代对象]
或者[表达式 for item in range 可迭代对象 if 条件判断]
>>>cells=[(row,col) for row in range(1,10) for col in range(1,10)] #相当于两个嵌套循环,生成一个列表,里面有(1,1) (1,2)......等元组组成
字典推导式
集合推导式
生成器推导式(生成元组)
其实元组是没有推导式的,只能使用生成器,一个生成器只能运行一次,第一次迭代可以得到数据,第二次就没有了
生成器是可迭代对象,可以被循环,但是只能使用一次