Python 中的常用内置函数
思维导图
(1)再谈生成器
- 生成器本质是迭代器
- 获取生成器的方法:生成器函数,生成器表达式,通过数据转化
- 生成器函数,函数内部有yield,执行这个函数获取的是生成器
- next(),可以触发生成器的执行,执行到下一个yield
- send(),触发生成器的执行,先给上一个yield传值,然后执行到下一个yield(不能用到开头和结尾)
- 特点:惰性机制,只能向前执行,节省内存
(2)再谈推导式
- 没有元组推导式,元组推导式其实是生成器表达式(结果 for 判断)
- 列表推导式 [结果 for 判断]
- 字典推导式{key,value for 判断}
- 集合推导式{key for 判断}
(3)常用内置函数(基础数据类型相关)
- 和数字相关
- bool() 转化为布尔型
- int() 转化为整形
- float() 转化为浮点型,小数
- complex() 转化成复数a+bi,a是实部,b是虚部
- bin() 将十进制转二进制0b
- oct() 将十进制转八进制0o
- hex() 将十进制转十六进制0x
- abs() 求绝对值
- divmod(a,b) 计算商和余数返回(商,余数)
- round() 四舍五入
- pow(a,b) a的b次幂入,如果再加个参数会取余
- sum(可迭代对象,数值) 求迭代对象加上数值的和,数值默认为0
- min(数值组) 求数值组最小值
- max(数值组)求数值组最大值
2)和数据结构相关
- list() 转成列表
- map() 分而制之
- tuple() 转成元组
- reversed() 翻转,返回迭代器,想得到翻转后的列表需要将迭代器转化成列表
- slice(a,b,c) 切片
- str() 字符串转化
- bytes() 转化成字节
- bytearry() 返回一个新字节数组,这个数组的元素是可变的,并且每个元素的值范围是(0,256)
- memoryview() 查看bytes在内存中的情况
- ord() 输入字符,找字符对应的数字编码
- chr() 输入数字编码,找数字对应的字符
- ascii() 是ascii码中的就返回该值,不是就返回\u…
- repr() 原样输出字符串
- frozenset() 转换成不可变的列表
- len() 返回字符串,列表等长度
- enumerate() 以元组形式返回索引和元素(i,ele)
- all(可迭代) 用and连接所有元素,返回True或者False
- any(可迭代) 用or连接所有元素,返回True或者False
- repr() 返回一个对象的字符串形式字,意为原样输出字符串
print(r'')
- format() 格式化输出
format(s,'^20')
format(s,'>20')
format(s,'<20')
format(int,'b')
format(int,'c')
format(int,'d')
format(int,'n')
format(int)
format(int,'o')
format(int,'x')
format(int,'X')
format('数值类型','e')
format('数值类型','0.2e')
format('数值类型','0.2E')
format('数值类型','f')
format('数值类型','0.2f')
format('数值类型','0.10f')
'{:对应格式化操作},{:对应格式化操作}'.format('要格式话的数值1','要格式话的数值2')
'{:0.2f},{:0.2e}'.format(1,1)
以上操作返回的均为字符串形式(str)
- zip() 压缩列表,返回一个可迭代对象(生成器或迭代器)
lst1=['A','B','C']
lst2=['a','b','c']
lst3=['1','2','3']
ls=zip(lst1,lst2,lst3)
print(list(ls))
(4)常用内置函数(迭代器生成器相关)
- range(a,b,s) 返回从a到b,每隔s个取一个的数列,不包含b
- next() 触发生成器的执行,执行到下一个yield,内部封装的就是__next__()
- iter() 获取迭代器,内部封装的就是__iter__()
(5)常用内置函数(作用域相关)
- globals() 函数以字典类型返回全部全局变量
- locals() 函数以字典类型返回当前位置全部局部变量
(6)常用内置函数(反射相关)
(7)常用内置函数(面向对象相关)
(8)常用内置函数(其他)
- input() :输入 print():输出
- hash():返回哈希值 id():返回id地址
#哈希的目的是为了储存,尽量的不重复,(字典数据)特点是查找快,但是占内存
- open(文件路径 ,打开方式,编码) 文件操作相关
- import() 导入模块
- help() 帮助
- callable() 调用相关
- dir() 查看内置属性
- eval(‘表达式’) 只能执行一个字符串表达式或者简单的表达式,返回表达式值
c='1+2'
res=eval(c)
print(res)
Srt="{'a':1,'b':2}"
dic=eval(Str)
print(dic)
- exec(‘字符串代码块’) 可以执行相对复杂的代码段,没有返回值
s='a=10'
exec(s)
print(a)
- compile(‘代码片段’ ‘存放代码的文件名’, eval或者exec或者single) ,先编译再执行
s="for i in range(10):print(i)"
c=compile(s,'','exec')
exec(c)