1、模块和包
2、==和is
3、深浅拷贝
4、函数
5、装饰器
6、迭代器
1、模块和包
包:包就是文件夹,用来存放和管理模块所用
模块:xx.py文件或者文件的集合
导包:
import xxx.xxx.xxx
from xx.xx import xxx
import xxx.xxx.xxx as alias
import xxx.xx.*
注意:有时候有些包在使用*这种导入方式时会导入失败,因为这些包没有在包初始化文件中,申明它包含的模块
["模块1","模块2","模块3","模块n"]
2、==和is
在python中==判断的是两个变量的值,is是用来判断两个变量的内存地址是否相等。
id全局函数的使用
常量缓存区
小整形常量缓存区
3、深浅拷贝
对象拷贝
import copy
copy.copy 浅拷贝,仅拷贝对象的第一层对象
copy.deepcopy 深拷贝,会递归拷贝
4、生成器
列表推导式
[i for i in range(1,101)]
[i for i in range(1,101) if i % 2==0]
[i*j for i in range(1,10) for j in range(1,10)]
列表推导式很强大,但是直接生成列表,那么当列表中的元素特别多的时候,内存的占有都特别大。
列表生成器
1、将列表推导是转换为列表生成器
将列表中[]使用()来代替
获取其中的值:使用全局函数next,并且返回下一值
求斐波拉契数据
def fib(num):
first = 1
second = 2
s = 0
while s < num:
first,second = second,first+second
yield关键字的使用:
yield关键字在函数中出现,和return类似,用来返回结果但是yield返回结果是一个生成器,当我们使用next函数调用这个生成器的结果时
协程(多任务):
send函数
5、可迭代对象和迭代器
python中的可迭代对象
str、list、set、tuple、dict、generator
迭代器:能够被next调用,并且返回下一值的叫做迭代器
模块:collections
6、函数高级
1、偏函数
from functools import partial
int_hex = partial(int,base= 16)
2、闭包(closure)
弱数据类型编程语言所特有的现象,能够读取其他函数内部变量的函数叫做闭包
优点:1、局部变量全局化2、防止全局变量污染
缺点:占据内存,无法回收