选择结构
单分支选择结构
if 条件表达式: #条件表达式可以是逻辑表达式、关系表达式、算术表达式
语句/语句块 #可以是一条,也可以是多条,多条时缩进必须一致
条件表达式
- 选择和循环结构中,条件表达式的值为False的情况:False、0、0.0、空值None(空列表、空元组、空集合、空字典、空字符串)、空rangge对象、空迭代对象
- 条件表达式中,不能有赋值操作符“=”,应该用关系运算符“==”
双分支选择结构
if 条件表达式:
语句1/语句块1
else:
语句2/语句块2
三元条件运算符
条件为真时的值 if (条件表达式) else 条件为假时的值
多分支选择结构
if 条件表达式1:
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
...
...
elif 条件表达式n:
语句n/语句块n
[else:
语句n+1/语句块n+1]
选择结构嵌套
使用时一定要注意控制好不同级别代码块的缩进
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4
循环结构
while循环
while 条件表达式:
循环体语句
for循环 :常用于可迭代对象的遍历
for 变量 in 可迭代对象:
循环体语句
可迭代对象
- 序列。包含:字符串、列表、元组、字典
- 迭代器对象(iterator)
- 生成器函数(generator)
- 文件对象
break语句
可用于while和for循环,用来结束整个循环。当有嵌套循环时,break语句只能跳出最近一层循环
continue语句
用于结束本次循环,继续下一次。多个循环嵌套时,continue也是应用与最近的一层循环
else语句
while、for循环可以附带一个else语句。如果for、while语句没有被break语句结束,则会执行else子句,否则不执行
while 条件表达式:
循环体
else:
语句块
for 变量 in 可迭代对象:
循环体
else:
语句块
循环代码优化
- 尽量减少循环内部不必要的计算
- 嵌套循环中,尽量减少内存循环的计算,尽可能向外提
- 局部变量查询较快,尽量使用局部变量
zip()并行迭代
zip()函数可以对多个序列进行并行迭代,在最短序列“用完”时就会停止。for a,b,c in zip(as,bs,cs)
推导式创建序列
- 列表推到式:[表达式 for item in 可迭代对象] 或者 [表达式 for item in 可迭代对象 if 条件判断]
- 字典推导式:{key_expression:value_expression for 表达式 in 可迭代对象}
- 集合推导式:{表达式 for item in 可迭代对象} 或者 {表达式 for item in 可迭代对象 if 条件判断}
- 生成器推导式(生成元组):生成器只能运行一次。(表达式 for item in 可迭代对象)或者 (表达式 for item in 可迭代对象 if 条件判断)