1、赋值魔法
1.1 序列解包
序列解包(或可迭代对象解包):将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中.
注意:要解包的序列包含的元素个数必须与你在等号左边列出的目标个数相同,否则Python将引发异常。
可使用星号(*)来收集多余的值,带星号(*)的变量返回的是一个列表
1.2 链式赋值
链式赋值是一种快捷方式,用于将多个变量关联到同一个值,类似于并行赋值。
1.3 增量赋值
2、代码块
代码块是一组语句,通过缩进代码来创建。
同一个代码块中,各行代码的缩进量必须相同。
3、条件和条件语句
3.1 布尔值
真值也称为布尔值。
标准值False和None、各种类型(包括浮点数、复数等)的数值为0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真,包括特殊值True。
布尔值True和False属于类型bool,与list,str和tuple一样,可用来转换其他值。
3.2 if语句
有条件的执行代码,如果条件(if和冒号之间的表达式)为前面定义的真,就执行后续代码块;如果条件为假,就不执行。
3.3 else子句
属于if语句的一部分。
3.4 elif子句
要检查多个条件,可使用elif。
3.5 更复杂的条件
1、比较运算符
表达式 | 描述 |
x==y | x等于y |
x<y | x小于y |
x>y | x大于y |
x<=y | x小于等于y |
x>=y | x大于等于y |
x!=y | x不等于y |
x is y | x和y是同一个对象 |
x is not y | x和y是不同的对象 |
x in y | x是容器(如序列)y的成员 |
x not in y | x不是容器(如序列)y的成员 |
2、布尔运算符
and、or或not,和、或、非
注意and和or 的逻辑短路
3.6 断言
如果知道必须满足特定条件,程序才能正确地运行,可在程序中添加assert语句充当检查点。
4、循环
4.1 while循环
4.2 for循环
4.3 迭代字典
4.4 一些迭代工具
1、并行迭代
zip函数,将两个序列“缝合”起来,并返回一个由元组组成的序列,返回值是一个适合迭代的对象,要查看其内容,可使用list或tuple等将其转换。
2、迭代时获取索引
3、反向迭代和排序后再迭代
函数reversed和函数sorted,可用于任何序列或可迭代的对象,不就地修改对象,返回反转和排序后的版本。
4.5 跳出循环
1、break
结束当前迭代,并退出循环
2、continue
结束当前迭代,并跳到下一次迭代开头
4.6 循环中的else字句
5、简单推导
使用中括号囊括for循环生成相应规则可迭代序列,即列表推导
使用花括号囊括for循环生成相应规则可迭代序列,即字典推导
注意:使用圆括号代替方括号将创建生成器。
6、另外三条语句:pass、del和exec与eval
6.1、pass
pass表示占位
6.2、del
del删除引用名称,Python将未引用的值自动删除(垃圾收集)
6.3、exec
函数exec主要用于动态的创建代码字符串,即将字符串作为代码执行。
添加字典,用作代码字符串的命名空间
6.4 eval
eval计算用字符串表示的Python表达式的值,并返回结果。