内置函数+匿名函数
内置函数:
一、作用域相关函数:
1.locals (本地作用域中所有名字)
2.globals(全局作用域中所有名字)
二、迭代器/生成器相关函数:
1.range(0,100,2)生成数字,可以加步长。
2.next (迭代器)使碰到yield继续执行
3.iter (*)让*变成迭代器
三、其他函数:
1.dir ()查看内置属性
2.help()帮助
3.callable()是否可以调用(为函数),返回True或False
4.import 使用模块
5.open()打开文件
6.id ()返回值,每次返回不一样。
7.hash()返回值,用hash算法,每次执行返回不一样。
8.print()输入内容,pycharm默认显示到页面上,也可以显示到某个文件内。
print('a',end = '')指定输出的结束符
print('a‘,4,5,sep = '|')指定分隔符
print('aaa',file = f)指定输出到某个文件中
9.input()用户交互
10.compile()编译
11.exec()没返回值
12.eval()有返回值,不建议用,有漏洞。
四、数据类型相关函数:
和数字相关:
1.bool()布尔值
2.int()整型
3.float()浮点数
浮点数 != 小数
浮点数(有限循环小数,无限循环小数)
小数:(有限循环小数,无限循环小数,无限不循环小数)
4.complex()复数
复数=实数+虚数 复数 5+12j j=J
实数:有理数
无理数
虚数:虚无缥缈的数
5.bin()二进制
6.oct()八进制
7.hex()十六进制
8.abs()绝对值
9.divmod(9,5)除余 div出发 mod取余 (1,4)
10.round(3.232)取整 3
11.pow(3,4)幂运算81
12.sum([2,3])求和5
13.min()最小数 key = abs 绝对值最小的数
14.max()最大数 同上
和数据结构相关:
序列:
1.list()列表 强转
2.tuple()元组 强转
3.reversed()序列,由大到小,返回迭代器,可以用list强转
4.slice() 类似切片,从1,5步长
5.str()字符串类型
6.format()格式化输出 print(format('test','>40')) 让test前加40个空格,^让test在中间
7.bytes()转换成bytes类型,方便传输
8.bytearray() 查看bytes的字节数,方便更改字符。
9.memoryview()同上可以输出多个字符
10.ord()字符转成unicode格式
11.chr()数字按照unicode格式转成字符
12.ascii()是否在ascii编码里,在就打印他的ascii,不在输出\u
13.repr()格式化输出,连引号也输出。
数据集合:
14.dict()字典类型
15.set()集合类型
16.frozenset()不可变集合类型
相关内置函数:
17.len()长度
18.enumerate()枚举 for循环打印,指定两个值,可以指定从1开始。for k,j in enumerate(l,1):print(k,j)
19.all()判断是否有bool值为False的值,有一个则为False
20.any()判断是否有bool值为True的值,有一个则为True
21.zip()拉链,把两个列表或元组结合成一个迭代器。[(1, 'a'), (2, 'b'), (3, 'c')]
22.filter()执行了之后的结果集合,只管筛选,不会改变原来的值。
23.map()执行前后元素个数不变,值可能发生改变。
24.sorted()排序,可以按指定KEY(绝对值)
匿名函数:
lambda:
计算x+y
s = lambda x,y:x+y print(s(1,2))
取出字典里最大值
dic={'k1':10,'k2':100,'k3':30} s = min(dic,key=lambda s:dic[s]) print(s)
现有两元组(('a'),('b')),(('c'),('d')),
请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
ret = zip((('a'),('b')),(('c'),('d'))) res = (map(lambda tup:{tup[0]:tup[1]},ret)) print(list(res))
列表推导式和生成器推导式区别
def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) def multipliers(): return (lambda x:i*x for i in range(4)) print([m(2) for m in multipliers()])
第一个结果:[6,6,6,6] 第二个结果:[0,2,4,6]
列表推导式是for循环执行完了,最后的i固定为3了,生成器推导式让for循环正常运行得到的结果。