Python提供了,许多内置的函数我们按 函数的作用来分类:
一、作用域相关的内置函数(2个)
(1)、globals() 更改全局变量
(2)、locals()更改局并命名空间的变量(上一级)
五、其他
1、字符串类型代码的执行(3)
(1)、eval() 将字符串类型得代码执行并返回结果
print(eval(('1+2+3+4'))) #输出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
test = input('请输入')#输入的内容显示在屏幕上
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
print(dir(dict)) #查看dict的内置方法,比如get,pop等等
二、和数字相关
1、数据类型
(1)bool 查看bool值类型
bool()#布尔值 print(bool(0)) #输出False
(2)int 整数
a = 1.153
print(int(a))
# 输出1
(3)float 浮点数
a = 1 print(float(a)) #输出1.0
(4)complex 复数,对数学研究的去看看,我对着不感兴趣
2、进制转换(bin,oct,hex)
num = 18
#转换成二进制
print(bin(num))
#转换成八进制
print(oct(num))
#转换成16进制
print(hex(num))
#输出 0b10010,0o22,0x12
3、数学运算
(1)abs
print(abs(-11))
#
(2)divmod 返回(除,余)
print(divmod(19,2))
#19/2 输出 9,1
(3)round小数精确
print(round(18.885465465,2)) #精确至小数点后两位 ,四舍五入 #18.89
(4)pow幂运算
print(pow(3,3)) #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() 反转序列 【本身有序的序列才可以反转】
ret = reversed([1,2,3,4,5]) for i in ret:#ret 是一个生成器 print(i)
注:
ret = reversed('123adsaga')
print(''.join(list(ret)))
#拼接成一个新字符串
(3)slice 切片
lis = [1,2,3,4,5] my_slice = slice(1,3,2) print(lis[my_slice])#lis[1:3:2]
2、字符串
(1)str 字符串强转
(2)format格式化
(3)bytes 把一个字符串转成二进制
t = 'sunjinyao'
by = bytes(t,encoding='utf-8')#转换成UTF-8
print(by.decode('utf -8'))#decode 转换回来
#转换的编码必须一致
(4)bytearray #array == 数组
ret = bytearray('sunjinyao',encoding='utf-8')
print(ret)
#bytearray(b'sunjinyao')
for i in ret:
print(i)#打印的是字符编码
'''117
110
106
105
110
121
97
111
'''
(5)ord 字符按照unicode转成数字
(6)chr 把数字转换字符
print(ord('a')) print(chr(97))
(7)ascii 字符串转ascii
#print(ascii('你好'))
(8)repr
print(repr(123))
print(repr(''))
#在解释器里面2个是看不出来类型的,如果加repr就可以看出来
3、数据集合
(1)字典dict
(2)set 集合
(3)frozenset #定义不可变集合
s = set('sunjinyao') s_1 = frozenset(s) print(s_1) (不可删除,不可增加)
4、相关内置函数
(1)len 计算长度
(2)enumerate
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i, element)
'''
输出
0 one
1 two
2 three
'''
(3)all 判断是否有bool值为False的值 # 接受可迭代对象
(4)any 判断是否有bool值为True的值
print(all([1,2,3,4,'']))#一个为假,都是假 print(any([1,2.0]))#有一个就为真,
(5)zip拉链
lis_1 = (1,2,3,4,5)
lis_2 = ('a','b','c','d')
lis_3 = (9,8,7,6,5)
ret = zip(lis_1,lis_2,lis_3)# 迭代器
for i in ret:
print(i)
'''
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
'''
(6) filter过滤 返回一个迭代器对象
收两个参数,第一个为函数,第二个为序列
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
#[1, 3, 5, 7, 9]
(7) map #根据函数的功能对 序列进行操作
def square(x) : # 计算平方数
return x ** 2
ret = map(square,[1,2,3,4,5]) # 计算列表各个元素的平方
print(list(ret))
#[1, 4, 9, 16, 25]
(8) sorted 排序
lis = [15,6,4,32,5,57] print(sorted(lis))#排序。默认从小到大
#sorted(lis,reverse=True) 从大到小