一.什么是内置函数
-
解释器自带的函数就是内置函数
-
内置函数查看方法
print(dir(__builtins__))
print(len(dir(__builtins__))) # 153个
二.常见内置函数
ps : 工厂函数 : int float str list tuple dict set bool bytes
三.常用内置函数介绍
部分常用内置函数在这: max min sorted map reduce filter
1、abs( ) : 绝对值
print(abs(-5)) # 变成正数
2、all( ) : 判断
- 一个为假,就为假 (0、空、None、Flase)
- 所有元素的布尔值为真,最终结果才为真
print(all([1,'a',0])) # False
print(all([1,2,[]])) # False
- 传给 all 的可迭代对象如果为空,最终结果为真
print(all('')) # True
print(all([])) # True
3、any( ) : 判断
- 但凡有一个为真,就为真
print(any([0,'',None,1])) # True
- 传给 any 的可迭代对象如果为空,最终结果为假
print(any([])) # False
print(any('')) # False
4、进制转换
print(bin(11)) # 10--->2
print(oct(11)) # 10--->8
print(hex(11)) # 10--->16
5、bool( ) : 布尔值
print(bool(0)) #0, None,空的布尔值为假
6、.encode( ) : 转类型
- 编码, 转成 "bytes" 类型
res = '你好songhaiixng'.encode('utf-8')
print(res) # b'\xe4\xbd\xa0\xe5\xa5\xbdsonghaiixng'
res = bytes('你好songhaixing',encoding='utf-8')
print(res) # b'\xe4\xbd\xa0\xe5\xa5\xbdsonghaixing'
7、callable( ) : 调用
- 判断是否可以调用
def func():
pass
print(callable(func)) # True
print(callable('ss'.strip)) # True
print(callable('dac'.split)) # False
print(callable(123)) # False
8、ASCII表转化
print(chr(90)) #按照表十进制转化成字符
print(ord('x')) #按照表十进制转化成数字
9、dir( ) : 查看调用对象
- 查看某个对象可以调用的方式
print(dir('song')) # [打印出一堆的调用方法]
10、divmod( ) : 除 余
print(divmod(10,3)) #(3,1)--->10除于3余1
print(divmod(10,2)) #(5,0)--->10除于2余0
11、eval( ) : 字符串内表达式运算
- 将字符串里面的表达式拿出来运算一下, 并拿到运算的结果
数学表达式
res = eval('2**3')
print(res) # 8
列表
res = eval('[1,2,3,4.5,5]')
print(res) # [1, 2, 3, 4.5, 5]
print(res[2]) # 3
字典
res = eval("{'name':'shawn','age':18,'sex':'man'}")
print(res) # {'name': 'shawn', 'age': 18, 'sex': 'man'}
print(res["name"]) # shawn
- 文件存取示例 (文件拿出来是字符串, 使用 eval() 将其转成字典)
with open(r"aaa.txt","at",encoding="utf-8")as f:
f.write('{"name":"shawn","age":10,"sex":"man"}\n')
f.write('{"name":"song","age":18,"sex":"woman"}\n')
f.write('{"name":"xing","age":14,"sex":"man"}\n')
l = []
with open(r"aaa.txt","rt",encoding="utf-8")as f:
for i in f:
line = i.strip('\n')
res = eval(line)
l.append(res)
print(l)
'''
[{'name': 'shawn', 'age': 10, 'sex': 'man'},\
{'name': 'song', 'age': 18, 'sex': 'woman'},\
{'name': 'xing', 'age': 14, 'sex': 'man'}]
'''
print(type(l)) # <class dict>
print(l[0]["name"]) # shawn
12、frozenset( ) : 不可变集合, 冻结集合
- 制作不可变的集合
fset = frozenset({1,2,3})
print(fset) # frozenset({1, 2, 3})
print(type(fset)) # <class 'frozenset'>
13、globals( ) : 全局作用域中的绑定关系
- 查看全局作用域中名字与值得绑定关系
- locals( ) : 局部 (当前位置的)
当都处于全局名称空间调用查看时,查看的效果是一样的
x = 111111
print(globals()) # [一堆绑定关系]
print(locals()) # [一堆绑定关系]
当在函数内部使用 "locals()" 查看时, 得到的就是函数内部名称空间的绑定关系
def aa():
x = 111
y = 222
print(locals())
aa() #{'x': 111, 'y': 222}
14、help( ) : 显示帮助信息
def func():
"""
帮助信息
:return:
"""
pass
print(help(func)) # [显示里面的帮助文档]
print(help(max))
15、len( ) : 长度
- 自定调用 "__len__" 功能
print(len({'x':1,'y':2})) # 2
print({'x':1,'y':2}.__len__) # 2
16、iter( ) : 迭代器
- 自定调用 "__iter__" 功能
res = iter('song')
print(next(res)) # s
print(next(res)) # o
print(next(res)) # n
.......
17、pow( ) : 平方取余
print(pow(10, 2)) # 100 10**2------>100
print(pow(2,3,3)) # 2 2**3 % 3--->余 2
print(pow(10, 2, 3)) # 1 10**2 % 3-->余 1
18、slice( ) : 切片
- 创建一个切片模板(对象),以后可以直接拿过来用
创建切片对象
res = slice(1, 5, 2)
直接使用创建好的来切
l = [1, 2, 3, 4, 5, 6, 7, 8]
print(l[res]) #[2, 4]
t = (5, 14, 7, 8, 9, 5, 4, 2)
print(t[res]) #(14, 8)
19、sum( ) : 求和
print(sum([1,2,3,4,5])) # 15
20、zip( ) : (拉链函数) 左右对应
left = 'hello'
right = (1,2,3,)
res = zip(left,right)
print(res) # <zip object at 0x0000016FC23A0748>
print(type(res)) # <class 'zip'>
print(list(res)) # [('h', 1), ('e', 2), ('l', 3)]
21、__import__ : 转模块
- 一般用于从文件中读取字符串, 将其转换成模块的形式
- 拿到的返回值可以进行模块的操作
with open('m',mode='rt',encoding='utf-8') as f:
module=f.read() # 这里拿到的是字符串
time=__import__(module) # __import__("time") 以字符串形式导入模块
time.sleep(3)
print(time.time())
22、reversed( ) : 倒序
- 将一个有序对象倒过来排序 (单纯的倒过来)
res = reversed((2,3,65,765,23,20))
res2 = reversed([4,6,2,7,9,0,3,1])
print(tuple(res)) # (20, 23, 765, 65, 3, 2)
print(list(res2)) # [1, 3, 0, 9, 7, 2, 6, 4]
23、hash( ) : 哈希值
- 返回传入对象的 hash 值
- 传入的是可 hash 类型, 也就是不可变类型
print(hash(1231)) # 1231
print(hash("派大星")) # 4444534694763505378
print(hash((1,2,3,4,"a"))) # 4233406373922709203
print(hash(2.5)) # 1152921504606846978
print(hash(['海绵宝宝',12])) # 报错 : TypeError
24、bytes( ) :编码格式
- 将一个字符串转成你想要的编码格式的字节
print(bytes('派大星',encoding="utf-8"))
# b'\xe6\xb4\xbe\xe5\xa4\xa7\xe6\x98\x9f'
print(bytes("派大星",encoding="gbk"))
# b'\xc5\xc9\xb4\xf3\xd0\xc7'
25、bin( ) : 十进制转二进制
- 将一个整数转换成一个二进制字符串, 结果以 "0b" 为前缀
print(bin(123)) # 0b1111011
print(bin(333)) # 0b101001101
print(bin(000)) # 0b0
26、oct( ) : 十进制转八进制
- 将一个整数转换成八进制的字符串, 结果以 "0o" 为前缀
print(oct(123)) # 0o173
print(oct(444)) # 0o674
print(oct(000)) # 0o0
27、hex( ) : 十进制十六进制
- 将一个整数转换成一个小写的十六进制字符串, 结果以 "0x" 为前缀
print(hex(123123)) # 0x1e0f3
print(hex(999999)) # 0xf423f
print(hex(000000)) # 0x0
28、chr( ) : 转ASCII表字符
- 返回整数在ASCII表中所对应的字符, 取值范围[0~255]之间的整数
- 65~90 : A~Z
- 97~122 : a~z
print(chr(99)) # c
print(chr(94)) # ^
print(chr(120)) # x
print(chr(76)) # L
29、ord( ) : ascii表字符转整数
- 将一个ascii表中的字符转换成整数
print(ord('%')) # 37
print(ord('z')) # 122
print(ord('A')) # 65
print(ord('=')) # 61