bin() bool() dict() float() hash() input() int() len() list() max() print() range() set() type() str()
dir() [函数不带参数时,返回当前范围内的变量,方法和定义的类型列表]
eval() [函数执行一个字符串表达式,返回表达式的值]
filter : 过滤 筛选满足条件的那些数据
map : 映射 用同样方法把所有数据都改成别的
reduce: 化简 对数组中的所有内容进行汇总
def func(a,b=[]): b.append(a) print(b) func(1) func(1) func(1) func(1)
看下结果
[1] [1, 1] [1, 1, 1] [1, 1, 1, 1]
函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第二次执行还是用第一次执行的时候实例化的地址存储,所以三次执行的结果就是 [1, 1, 1] ,想每次执行只输出[1] ,默认参数应该设置为None。
在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。**
yield 的作用就是把一个函数变成一个生成器,带有yield的函数不再是一个普通的函数
yield from generator 。实际上就是返回另外一个生成器 yield from 后面可以跟的式子有“ 生成器 元组 列表等可迭代对象以及range()函数产生的序列
with语句的作用是通过某种方式简化异常处理
自动管理文件关闭
在没有一个程序之前,我们不知道程序会在哪里出错,与其让它在运行中崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
在序列化时,中文汉字总是被转换为unicode码,在dumps函数中添加参数ensure_ascii=False即可解决。