Python控制语句&推导式-if条件结构、三元条件运算符、循环结构、推导式创建列表、字典、集合、元祖

2283-鲁同学

发表文章数:26

热门标签

首页 » Python » 正文

选择结构

  1. 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
    语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
  2. 条件表达式的值为 False的情况:False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空 range 对象、空迭代对象。其他情况,均为 True
  3. 条件表达式中,不能有赋值操作符“=”(会报错)

多分枝结构

:方括号为可选,if else 结构可嵌套

if 条件表达式 1 :
    语句 1/语句块 1 
elif 条件表达式 2: 
    语句 2/语句块 2 
    ...
elif 条件表达式 n: 
    语句 n/语句块 n 
[else:
    语句 n+1/语句块 n+1 
]

三元条件运算符

更加简洁双分支:

条件为真时的值 if (条件表达式) else 条件为假时的值

循环结构

while 循环

while 条件表达式: 
    循环体 
else:
    语句块

else语句可选:如果 for、while 语句没有被 break 语句结束,则会执行 else 语句,否则不执行。

for 循环和可迭代对象遍历

for 变量 in 可迭代对象: 
    循环体 
else:
    语句块

可迭代对象

  1. 序列。包含:字符串、列表、元组
  2. 字典
  3. 迭代器对象(iterator)
  4. 生成器函数(generator)
  5. 文件对象

range 对象

range 对象是一个迭代器对象

range(start, end [,step])

生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0 开始。step可选的步长,默认为 1

break 语句

break 语句可跳出while 和 for 一层循环循环,用来结束整个循环。

continue 语句

continue 语句用于结束本次循环(也是最内层循环),继续下一次。

循环代码优化

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  3. 局部变量查询较快,尽量使用局部变量

其他优化

  1. 连接多个字符串,使用 join()而不使用+
  2. 列表进行元素插入和删除,尽量在列表尾部操作

使用 zip()并行迭代(遍历)

zip()函数在最短序列“用完”时就会停止

names = ("高淇","高老二","高老三","高老四") 
ages = (18,16,20,25) 
jobs = ("老师","程序员","公务员") 
for name,age,job in zip(names,ages,jobs): 
    print("{0}--{1}--{2}".format(name,age,job))

推导式创建序列

列表推导式

[表达式 for item in 可迭代对象 ] 
[表达式 for item in 可迭代对象 if 条件判断]

例如:

print([x for x in range(1,5)])
print([a for a in "abcdefg"])
print([x*2 for x in range(1,20) if x%5==0 ])
[10, 20, 30]
#用两层for循环
print([(row,col) for row in range(1,10) for col in range(1,10)])

字典推导式

类似于列表推导式,字典推导也可以增加 if 条件判断、多个 for 循环

{key_expression : value_expression for 表达式 in 可迭代对象}

集合推导式

{表达式 for item in 可迭代对象 } 
{表达式 for item in 可迭代对象 if 条件判断}

生成器推导式(生成元组)

用法同上

  1. 元组是没有推导式的
(x for x in range(1,100) if x%9==0)
<generator object <genexpr> at 0x000001AF0F6F3610>
  1. 一个生成器只能得到一次数据
gen = (x for x in range(1,100) if x%9==0)
for x in gen:
    print(x,end=' ')
for x in gen:
    print(x,end=' ')
标签:
分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录