内置函数
作用域相关
locals()#返回本地作用域中所有的名字
globals()#返回全局作用域中的名字
def func(): a ,b = 1,2 print(a,b) print(locals())#{'b': 2, 'a': 1} print(globals())#{'__name__': '__main__', '__doc__': None, '__package__': None, # '__loader__': <_frozen_importlib_external.SourceFileLoader objectat 0x0000000388D7E128>, # '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, # '__file__': 'D:/python/python113天/作业/day11.py', '__cached__': None, # 'func': <function func at 0x0000000388D13F28>}
迭代器生成器相关
next(迭代器) #返回迭代器下一个值,相当与__next__()
iter(可迭代对象) #得到一个迭代器,相当与__iter__()
range(1,10,2) #可迭代对象,不是迭代器
内存相关
id(对象) #得到内存地址
hash(对象) #得到对象的hash值,相同可hash的数据的hash值再一次程序执行过程中总是不变的
不可hash的数据类型:list,dict,set
进制转换
bin(10) #十进制转二进制
oct(10) #十进制转八进制
hex(10) #十进制转十六进制
bytes('asd',encoding='utf-8') #str--->bytes
bytearray() #字节数组,修改时可以节省内存,查找位置
memoryview() #字节类型的切片,不占内存
ord('') #字符转成数字,按utf-8编码转
计算相关
divmod(1,2) #返回商和余数
round(2.35467,2) #精确值,保留两位小数
pow(1,2) #求1的2次幂
sum([1,2,3]) #求和
min((1,2,3),key=abs) #求最小值,先执行abs函数,再比较最小值
max((1,2,3)) #求最小值,先执行abs函数,再比较最小值
其他
dir(对象) #查看一个对象拥有的方法
callable(对象) #查看对象是否能被调用,是否是函数
help() #查看帮助文档,使用方法
import #导入模块
open() #打开一个文件
input('提示') #用户输入
print(end='',sep='',file='d:jcc.txt') #自动换行,end='',默认每一行后加回车,sep=''多个值输出时指定分隔符,file='':指定输出文件,默认控制台
exec('print(123)') #执行一条python语句,exec没有返回值,执行一些简单流程控制
eval('1+2+3') #eval有返回值,执行一些有返回值的简单运算
compile(code,'','exec') #编译代码,转换成字节码,exec表示简单流程类编译,single表示交互类编译
complex #复数
float #浮点数,当小数点位数太多时就会出现输出不准确,二进制转换的原因
len(对象) #返回长度
all([1,2,3,0]) #有任意一个值是false就返回false
any() #有任意一个True就是True
repr('') #带符号输出
print(repr('123')) #输出'123'
dict()
set()
frozenset()#不可变集合
几个重要的内置函数
zip
zip(可迭代对象) 拉链方法
list1 = [1,2,3] list2 = ['a','b','c'] dic = {'k1':1,'k2':2}#只包含key值 for i in zip(list2,list1): print(i)#把传入的可迭代对象按照索引组成一个个新的元组
filter
filter(函数名,可迭代对象)过滤方法,返回符合函数规则的数据
返回列表中的奇数 def is_odd(n): return n%2==1 ret = filter(is_odd,[1,2,3,4])
map
#map(函数名,可迭代对象)
#执行前后元素个数不变,值可能发生改变
res = map(abs,[1,2,3]) for i in res: print(i)#分别取绝对值
sort
#sort 在源列表的基础上进行排序 list1 = [1,3,2,4] print(id(list1)) list2 = list1.sort(key=abs) print(id(list2)) #sorted 重新生成一个列表,全部返回,占用内存空间 list1 = [1,3,2,4] print(list1) list2 = sorted(list1) print(list1) print(list2)
reserved
reversed() #返回一个反转列表的迭代器
gen = reversed([1,2,3]) print(gen)#<list_reverseiterator object at 0x0000008C6762F780> for i in gen : print(i)
slice()
slice()#切片规则
str1 = 'abcdefghijklmopqrstuvwxyz' s = slice(1,4)#定义一个切片规则 print(str1[s])
匿名函数
关键字 lambda
lambda (参数):(返回值)
sum1 = lambda x,y:x+y print(sum1(1,2))