目录
5.4.3、反向迭代和排序后再迭代-sorted、reversed
1、导入模块
1.1、导入整个模块并给它指定别名
1.2、导入特定函数并给它指定别名的例子
2、赋值魔法
2.1、序列解包(可迭代对象解包)
同时(并行)给多个变量赋值:
交换多个变量的值:
假设要从字典中随便获取(或删除)一个键-值对,可使用方法popitem
可使用星号运算符(*)来收集多余的值(作为一个列表),这样无需确保值和变量的个数相同
2.2、链式赋值
链式赋值是一种快捷方式,用于将多个变量关联到同一个值。
3、布尔值
用作布尔表达式(如用作if语句中的条件)时,下面的值都将被解释器视为假:
tip:虽然[]和""都为假(即bool([]) == bool("") == False),但它们并不相等(即[] != "")
布尔值运算符:and、or、not
4、断言(assert)
要求某些条件得到满足才执行,在语句中使用关键字assert。
可在程序中添加assert语句充当检查点
5、循环
5.1、while 循环
打印1-100:
5.2、for 循环
可迭代对象是可使用for循环进行遍历的对象
tip:鉴于迭代(也就是遍历)特定范围内的数是一种常见的任务,Python提供了一个创建范围的内置函数-range()。
打印数1~100:
5.3、迭代字典
要遍历字典的所有关键字,可像遍历序列那样使用普通的for语句。
可在其中使用序列解包(for循环的优点之一):
5.4、迭代工具
5.4.1、并行迭代-zip
同时迭代两个序列时:
一个很有用的并行迭代工具是内置函数zip,它将两个序列“缝合”起来,并返回一个由元组组成的序列。(返回值是一个适合迭代的对象,要查看其内容,可使用list将其转换为列表。)
“缝合”后,可在循环中将元组解包。
tip:当序列的长度不同时,函数zip将在最短的序列用完后停止“缝合”。
5.4.2、迭代时获取索引-enumerate
在迭代对象序列的同时获取当前对象的索引,替换一个字符串列表中所有包含子串'xxx'的字符串。使用内置函数-enumerate
5.4.3、反向迭代和排序后再迭代-sorted、reversed
就地修改对象,而是返回反转和排序后的版本:
tip:sorted返回一个列表,而reversed像zip那样返回一个更神秘的可迭代对象
要按字母表排序,可先转换为小写,例如,sorted("aBc", key=str.lower)返回['a', 'B', 'c']。
6、简单推导
6.1、列表推导
由range(10)内每个值的平方组成的列表:
求模运算符:
添加for语句:
7、pass、del、exec语句
7.1、pass
在你编写代码时,可将其用作占位符。
7.2、del
只删除名称,而没有删除本身(值)。
7.3、使用exec和eval执行字符串及计算其结果
7.3.1、exec
函数exec将字符串作为代码执行,不返回值。
tip:应向它传递一个命名空间——用于放置变量的地方;否则代码将污染你的命名空间,即修改你的变量。
添加第二个参数——字典,用作代码字符串的命名空间:
7.3.2、eval
计算用字符串表示的Python表达式的值,并返回结果。
例如,可使用如下代码来创建一个Python计算器:
向exec或eval提供命名空间时,可在使用这个命名空间前在其中添加一些值。