Python提供了,许多内置的函数我们按 函数的作用来分类:
一、作用域相关的内置函数(2个)
(1)、globals() 更改全局变量
(2)、locals()更改局并命名空间的变量(上一级)
五、其他
1、字符串类型代码的执行(3)
(1)、eval() 将字符串类型得代码执行并返回结果
1 print(eval(('1+2+3+4'))) 2 #输出10
(2)、exec()将字符串类型的代码执行
print(exec("1+2+3+4")) exec("print('hello,world')") #输出 None #hello,world
(3)、compile将字符串类型的代码编译,代码对象能通过exec语句来执行或者eval()进行求值
1. 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。
2. 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。
3. 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。
code1 = 'for i in range(0,3): print (i)' compile1 = compile(code1,'','exec') exec (compile1) #输出0,1,2
2、输入输出
(1)input,print
1 test = input('请输入')#输入的内容显示在屏幕上 2 print(test)#在屏幕上显示所打印的东西
3、内存相关
(1)、id
a = 1 print(id(a)) #140705006216016 变量内存地址
4、文件系统相关
(1)open :打开一个文件 操作模式,r,读,W,写,a追加 每一种模式都可以用二进制的方式操作(rb,ab,wb)可以指定enconding比吗
f = open('file_name','w',encoding='utf-8') #f 文件句柄,file_name文件名,W ,写模式,'utf-8'编码模式
5、帮助
(1)help
# help() #在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出 help(print) #加参数,此命令的相关文档
6、查看参数所属类型的所有内置方法
(1)dir
1 print(dir(dict)) 2 #查看dict的内置方法,比如get,pop等等
二、和数字相关
1、数据类型
(1)bool 查看bool值类型
1 bool()#布尔值 2 print(bool(0)) 3 #输出False
(2)int 整数
a = 1.153 print(int(a)) # 输出1
(3)float 浮点数
1 a = 1 2 print(float(a)) 3 #输出1.0
(4)complex 复数,对数学研究的去看看,我对着不感兴趣
2、进制转换(bin,oct,hex)
1 num = 18 2 #转换成二进制 3 print(bin(num)) 4 #转换成八进制 5 print(oct(num)) 6 #转换成16进制 7 print(hex(num)) 8 #输出 0b10010,0o22,0x12
3、数学运算
(1)abs
print(abs(-11)) #11
(2)divmod 返回(除,余)
print(divmod(19,2)) #19/2 输出 9,1
(3)round小数精确
1 print(round(18.885465465,2)) 2 #精确至小数点后两位 ,四舍五入 3 #18.89
(4)pow幂运算
1 print(pow(3,3)) 2 #27 3的三次方
(5)sum求和
lis = [1,23,43,5,21] print(sum(lis)) #输出93
注意:sum只能接收可迭代对象,不能sum(1,2,3,5)
(6)max计算最大值
lis = [1,23,43,5,21] print(max(lis)) #输出43
(7)min计算最小值
lis = [1,23,43,-5,21] print(min(lis)) #输出-5 print(min(lis,key=abs)) # 输出1 key可以传方法,也可以传函数
三、和数据结构相关
1、序列
(1)列表和元组[list,tuple]
(2) reversed() 反转序列 【本身有序的序列才可以反转】
1 ret = reversed([1,2,3,4,5]) 2 for i in ret:#ret 是一个生成器 3 print(i)
注:
1 ret = reversed('123adsaga') 2 print(''.join(list(ret))) 3 #拼接成一个新字符串
(3)slice 切片
1 lis = [1,2,3,4,5] 2 my_slice = slice(1,3,2) 3 print(lis[my_slice])#lis[1:3:2]
2、字符串
(1)str 字符串强转
(2)format格式化
(3)bytes 把一个字符串转成二进制
1 t = 'sunjinyao' 2 by = bytes(t,encoding='utf-8')#转换成UTF-8 3 print(by.decode('utf -8'))#decode 转换回来 4 #转换的编码必须一致
(4)bytearray #array == 数组
1 ret = bytearray('sunjinyao',encoding='utf-8') 2 print(ret) 3 #bytearray(b'sunjinyao') 4 for i in ret: 5 print(i)#打印的是字符编码 6 '''117 7 110 8 106 9 105 10 110 11 121 12 97 13 111 14 '''
(5)ord 字符按照unicode转成数字
(6)chr 把数字转换字符
1 print(ord('a')) 2 print(chr(97))
(7)ascii 字符串转ascii
#print(ascii('你好'))
(8)repr
1 print(repr(123)) 2 print(repr('123')) 3 #在解释器里面2个是看不出来类型的,如果加repr就可以看出来
3、数据集合
(1)字典dict
(2)set 集合
(3)frozenset #定义不可变集合
1 s = set('sunjinyao') 2 s_1 = frozenset(s) 3 print(s_1) (不可删除,不可增加)
4、相关内置函数
(1)len 计算长度
(2)enumerate
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
1 seq = ['one', 'two', 'three'] 2 for i, element in enumerate(seq): 3 print(i, element) 4 ''' 5 输出 6 0 one 7 1 two 8 2 three 9 '''
(3)all 判断是否有bool值为False的值 # 接受可迭代对象
(4)any 判断是否有bool值为True的值
1 print(all([1,2,3,4,'']))#一个为假,都是假 2 print(any([1,2.0]))#有一个就为真,
(5)zip拉链
1 lis_1 = (1,2,3,4,5) 2 lis_2 = ('a','b','c','d') 3 lis_3 = (9,8,7,6,5) 4 ret = zip(lis_1,lis_2,lis_3)# 迭代器 5 for i in ret: 6 print(i) 7 ''' 8 (1, 'a') 9 (2, 'b') 10 (3, 'c') 11 (4, 'd') 12 '''
(6) filter过滤 返回一个迭代器对象
收两个参数,第一个为函数,第二个为序列
1 def is_odd(n): 2 return n % 2 == 1 3 tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 4 newlist = list(tmplist) 5 print(newlist) 6 #[1, 3, 5, 7, 9]
(7) map #根据函数的功能对 序列进行操作
1 def square(x) : # 计算平方数 2 return x ** 2 3 ret = map(square,[1,2,3,4,5]) # 计算列表各个元素的平方 4 print(list(ret)) 5 #[1, 4, 9, 16, 25]
(8) sorted 排序
1 lis = [15,6,4,32,5,57] 2 print(sorted(lis))#排序。默认从小到大
#sorted(lis,reverse=True) 从大到小