1. 选择结构
if:
if
语句单分支结构的语法形式如下:
if
条件表达式:
语句/语句块- 在选择和循环结构中,条件表达式的值为False 的情况如下:
False、 0 、 0.0 、空值 None 、空序列对象(空列表、空元祖、空集合、空字典、空字
符串)、空 range 对象、空迭代对象。 - 条件表达式中,不能有赋值操作符 “=”
- 双分支结构:
if 条件表达式: 语句1/ 语句块 1 else: 语句2/ 语句块 2
- 三元条件运算符:
语法:
条件为真时的值 if ( 条件表达式 ) else 条件为假时的值
num = inpu("请输入一个数字") print(num if int(num)<10 else "数字太大")
- 多分支选择结构:
if 条件表达式 1 : 语句1/ 语句块 1 elif 条件表达式 2: 语句 2/ 语句块 2 [else: 语句n+1/ 语句块 n+1 ] 【注意 [] 在计算机重视可选语句】
- 选择结构嵌套:
2. 循环结构
while:
while
循环的语法格式如下:while 条件表达式: 循环语句
for:
- for 循环通常用于可迭代对象的遍历。语法格式如下:
for 变量 in 可迭代对象:
循环语句 - python包含以下几种可迭代对象:
- 序列:字符串,列表,元组
- 字典
- 迭代器对象(iterator)
- 生成器对象(generator)
- 文件对象
break
语句:用于 while 和 for 循环,用来结束最近一层的循环!continue
语句:用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是用于最近的一层循环!else
语句:while 和 for 循环可以附带一个else 语句。如果while, for语句没有被break语句结束,则会执行else子句,否则不执行。- 循环中代码的优化:
- 尽量减少循环内部不必要的计算
- 嵌套循环中,尽量减少内层循环的计算,尽可能向外提
- 局部变量查询较快,尽量使用局部变量
- 使用zip()函数并行迭代:
输出结果:
3. 推导式创建序列
推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。
- 列表推导式:
语法:
[表达式 for item in 可迭代对象]
或者:[表达式 for item in 可迭代对象 if 条件判断][x*2 for X in range(100) if x%5 == 0]
- 字典推导式:
语法:
{key_expression : value_expression for 表达式 in 可迭代对象}
类似于列表推导式,字典推导式也可以增加if条件判断,多个for循环。my_text = "i love you, i love x, i love y" char_count = {c:my_text.count(c) for c in my_text} char_count
- 集合推导式:
语法:
{表达式 for item in 可迭代对象 if 条件判断}
{x for x in range(1,100) if x%9==0}
- 生成器推导式(生成元组):
显然,从上图可知,元组是没有推导式的
一个生成器只能运行一次,第一次度额度可以得到数据,第二次迭代数据就已经没有了