13.python 内置函数
一.内置函数
1.基础数据类型相关(38个)
内置函数,就是python提供的,可以拿来直接用的函数,比如print input python提供给我们的目前有68个内置函数,
一,数字相关14个
数字相关 数据类型4个
1.bool()将给定的数据转换为bool值,如果不给值,返回False 比如空的集合
2.int() 给定的数据类型转换为int值,如果不给值,返回()
3.float() 将给定的数据转换成float,也就是小数
apple = 3.5 print (type(apple)) 浮点型数据有误差
4.complex()创建一个复数,第一个参数为实部,第二个参数为虚部,或者第一个参数直接用字符串来描述复数
进制转换3个
5.bin()将给定的数据转换成二进制
6.otc() 将给定的参数转换为八进制
7.hex ()将给定的参数转换为16进制
a = 5
print (bin(a)) 0b
a = 8
print (oct(a))0o
a = 16
print (hex(a)) 0x
数学运算7个
8.abs() 返回绝对值
9.divmode() 返回商和余数
10.round() 四舍五入 有问题 不是很精确 浮点数底层存储是有问题的
11.pow(x,y) 求 x的y次方
12.sum() 求和
13.max() 求最大值
14.min() 求最小值
rint (abs(-1)) 绝对值函数
print(divmod(10,7)) #返回元组 前边商,后边余数
print(round(4.3)) 新版本round 有问题 浮点数最底层存储是有问题的
print(pow(2,3)) 求2的3次方
如果pow有三个参数,默认认为求完平方后进行取余
print (sum(1,2))
print (sum([1,2,3,3],6)) #sum求和,前一个可以是可迭代对象
lst = [1,12,3,4,]
lst2 = [2,3,4,5]
print (sum(lst,sum(lst2)))
max 求最大值
print(max(1,2,3,44,9)) max 里面不要放字符串
print(min(1,-2,-5,-5,-6))
二.数据结构相关24个
序列相关13个
列表和元祖2个
15.list() 将一个可迭代对象转换成列表
16.tuple() 将一个可迭代对象转换成元组
相关内置函数2个
17.rversed() 将一个序列翻转,返回翻转序列的迭代器
18.slice() 列表的切片
lst = [1,3,5,7,9]
it = reversed(lst)生成器
for i in it:
print (i)
s = slice(1,3)
print (lst[s]) 切片的函数
字符串9个
19.str()将数据转化为字符串
20.format()与具体数据相关,用于计算各种小数,精算等
print(format('test','>20'))
print(format('test','<20'))
print(format('test','^20')) 格式化字符串的三种形式
数值
s = format(7,'b')
# print (s) 数值
s = format(65,'c') #unicode
print (s)
s = format(20094,'c') #unicode
print (s)
s = format(31,'x') #unicode
print (s)
s = format(31,'X') #unicode
print (s)
s = format(65,'c') #unicode
print (s)
print (format(65))#默认d
print (format(123458989898967,'e'))#科学计数法 默认保留小数点后6位
print (format(123458989898967,'.2e')) 2位
print (format(123458989898967,'.8e')) 8位
print (format(123458989898967,'E')) 大写
print (format(1.23458989898967,'f')) 浮点数也是默认保留小数点后6 位
print (format(1.23458989898967,'.2f')) .x 都是保留x 位
print(format(1.37878374749e+100000,'F')) INF无穷大
21.bytes() 把字符串转化为bytes类型
22.bytearray() 返回一个新字节数组,这个数组里的元素是可变的,并且每个元素的范围都是0-256
bytes
s = '周润发'
bs = s.encode('utf-8')
print (bs)
bs = bytes(s,encoding = 'utf-8')
print (bs)
s = 'jdkjfjkj哈哈'
bs = s.encode('utf-8')
print(bs) utf-8要兼容ASCII
ret = bytearray('alex',encoding = 'utf-8')
print (ret[0])
print (ret)
汉字没有用,拿出一个汉字分成三份 拿出一份
ret = bytearray('周杰伦',encoding = 'utf-8')
print (ret[0]) 打印出299 周 \x\x\x
print (ret)
ret = bytearray('刘伟',encoding = 'utf-8')
print (ret[0],ret[1],ret[2],ret[3],ret[4],ret[5])
print (ret) 可以作为加密来使用
23.memoryview()查看bytes在内存中的情况
24.ord()输入字符找带字符编码的位置
25.chr()输入位置数字找出对应的字符
26.ascii 是ASCII就返回该值,不是就返回\u...
merroyview 中心思想 没什么用
s = memoryview('马化腾'.encode('utf-8'))
print ('__iter__'in dir(s))
print(ord('a'))
print(ord('中')) 在编码中的位置
print(chr(67))
for i in range(65536):
print (chr(i),end = ' ')
print (ascii('a'))
print (ascii('好')) 返回\u不是ASCII码的
27.reper()返回一个对象的string形式,在python底层的字符串形式
# s = '周杰\\哈哈\伦' # print (s) #一个\表示转义 \n\t\r # print (repr(s)) 把字符串的官方解释给还原回来
数据集合3个
28.dict()创建一个字典
29.set()创建一个集合
30.frozenset()创建一个冻结的集合,冻结的集合不能进行添加和删除操作
s = {'张翠山','张三丰','张无忌'}
ss = frozenset(s)
dic = {ss:'6爆了'}
print(dic) #集合不可哈希
相关内置函数8个
31.len()返回一个对象中的元素个数
32.sorted() 对可迭代对象进行排序操作
33.enumerate()获取集合的枚举对象
lst = ['最后一个棒棒','看不见的房客','傻瓜','那个男人来自地球']
for i in lst:
print (i) 没有索引
enumerate
for i in range(len(lst)):
print (i,lst[i]) 通过索引拿元素
for xxx in enumerate(lst):#(0,'最后一个棒棒') 拿到元素和索引 是一个元组
print(xxx)
for index,i in enumerate(lst,100): 枚举
print (index,i)
34.all() 可迭代对象中全部是True,结果才是True
35.any()可迭代对象中有一个是True结果就是True
36.zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回这些元组组成了的列表,如果各个迭代器的元素个数不一致,则返回列表的长度与最短的对象相同
37.filter()筛选函数,filter(function,iterable)
38.map()会根据提供的函数对指定序列做映射(lamda)
# print(any([False,False,True])) 相当于逻辑运算符的or
# print(all([False,False,True])) 相当于and
# # zip
# lst1 =['中国','美国','俄罗斯','日本']
# lst2 =['北京','华盛顿','莫斯科','东京']
# lst3 =['烤鸭','西餐','黄油+面包','寿司']
#
# a = zip(lst1,lst2,lst3)
# print ('__iter__'in dir(a)) #判断是否为可迭代对象
#
作用域相关2个
39.locals() 返回当前作用域中的名字
40.globals()返回全局作用域中的名字
反射相关4个
41.
42
43
44
面向对象相关9个
45
46
47
48
49
50
51
52
53
迭代器生成器相关3个
54.range() 生成数据
55.next() 迭代器向下执行了一次,内部实际上是使用了__next__()来返回迭代器的下一个项目
56.iter() 获取迭代器,内部实际上是使用__iter__()来获取迭代器
其他12个
字符串类型代码的执行3个
57.eval() 执行字符串类型的代码,返回最终结果,有返回值
58.exec()execute执行,没有返回值
59.compile() 将字符串类型的代码编译,代码对象能够通过exec()语句来执行或者eval()进行求值()
# eval
# s = '1+2+3'
# s = "{'name':'alex','age':'18'}" eval 可以帮我们还原一些字符串类型的代码 josn lst
# res = eval(s)
# print (res)# 帮你执行语句
# content =input( '请输入你要执行的代码:')
# res = eval(content)
# print (res)#只能帮我们执行一行代码
# exec() #execute 执行,没有返回值
# exec('for i in range(10): print (i)')#可以帮我们执行一段代码
# exec('a =10')
# print (a) 这块a会出现个错误,但是可以执行
#
# exec 和 eval的区别
# exec 不会提供返回值exec(里面可以把值赋给个变量)
# compile(编译 python提供的函数,可以帮我们编译执行一段代码)
# code1 ='for i in range(10): print (i)'
# exec(code1) 直接执行这个函数
# code1 ='''for i in range(10): print (i)
# def func():
# print ('我是函数')
# func()
#
# ''' #字符串中可以写多行,甚至可以写函数
# c = compile(code1,'','exec')
# exec(c)
# code2 = '1+2+3+4'
# c = compile(code2,'','eval')
# res = eval(c)
# print (res)
# code3 = "name =input('请输入你的名字:')"
# c = compile(code3,'',mode = 'single')
# res = exec(c)
# print (res)
compile()
里面有三个参数
1.resource要执行的代码,动态代码片段
2.文件名,代码存放的文件名,当传入第一个参数,这个参数给空就可以了
3.模式,取值有三个
1.exec 一般放一些流程语句
2. eval resource只存放一个求值表达式
3.single:resource存放的代码交互的时候,mode应该为single
输入输出两个
60.input() 获取用户输入的内容
61.print () 打印输出
内存相关2个
62.哈希 hash() 获取对象的哈希值(int str bool tuple)
63. ID() 获取到对象的内存地址
文件操作和模块相关
64.open()用于打开一个文件
65.__import__()用于动态加载类和函数
帮助
66.help() 函数用于查看函数或者模块用途的详细说明
print(help(str))
调用相关
67.
callable() 用于检查一个对象是否是可调用的
如果返回True,object有可能调用失败,如果返回False则一定调用失败
def func():
# pass
# print (callable(func))# 判断是否可以被调用
# a= 123
# print (callable(a))
查看内置属性
68.dir() 查看对象的内置方法 访问的对象是__dir__()
print (abs(-1)) 绝对值函数
print(divmod(10,7)) #返回元组 前边商,后边余数
print(round(4.3)) 新版本round 有问题 浮点数最底层存储是有问题的
print(pow(2,3)) 求2的3次方
如果pow有三个参数,默认认为求完平方后进行取余
print (sum(1,2))
print (sum([1,2,3,3],6)) #sum求和,前一个可以是可迭代对象
lst = [1,12,3,4,]
lst2 = [2,3,4,5]
print (sum(lst,sum(lst2)))
max 求最大值
print(max(1,2,3,44,9)) max 里面不要放字符串
print(min(1,-2,-5,-5,-6))
浙公网安备 33010602011771号