一、常见内置函数
https://docs.python.org/3/library/functions.html
二、计算类
1、abs(x)
取绝对值
>>> abs(-10) 10
2、all(iterable)
如果这个可迭代的元素都为真,则返回真(非0的就为真,负数也是为真)
>>> all([2,3,1,0]) False >>> all([2,3,1]) True >>> all([2,3,-1]) True
3、any(iterable)
可迭代的元素中,有一个为真,则返回真,空列表返回假。
>>> any([]) False >>> any([0]) False >>> any([2,4]) True
4、bool([x])
功能:返回一个布尔值,空列表为假,不为空为真
>>> bool([]) False >>> bool([6,7]) True
5、divmod(a,b)
功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。
>>> divmod(4,3) (1, 1) >>> divmod(5,3) (1, 2) #1是商,2是余数
6、map(function, iterable)
功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。
>>> b=map(lambda n:n*2,range(5)) >>> b <map object at 0x1033c9a58> >>> for i in b: ... print(i) ... 0 2 4 6 8
7、reduce(function,iterable)
功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。
>>> from functools import reduce >>> res=reduce(lambda x,y:x+y,range(10)) >>> res 45
8、len(s)
功能:计算序列或者字符串的长度
>>> len('bianbain') 8 >>> len(list((1,2,3,5,3,))) 5
9、max(iterable, *[, key, default])
功能:返回列表重点额最大值
>>> max([1,2,4,54,23]) 54
10、min(iterable, *[, key, default])
功能:返回列表中的最小值
>>> min([1,2,4,54,23]) 1
三、数据类型转换类
1、ascii(object)
把内存对象变成一个可打印的字符串格式
>>> ascii([1,2,34,4]) '[1, 2, 34, 4]'
2、bin(x)
把一个整数转换成二进制
>>> bin(80) '0b1010000'
3、bytes([source[, encoding[, errors]]])
把字符串转换成字节
>>> a = bytes("mnop",encoding="utf-8") >>> a b'mnop' >>> a[0] 109 >>> a[0]=w Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'w' is not defined
注:(1)可以访问到字符对应的ASCII值
(2)bytes声明的字符串不可以修改里面的值
4、bytearray[source[, encoding[, errors]]]
功能:字节数组,并且可以修改二进制的字节
>>> b = bytearray("abcd",encoding="utf-8") >>> b bytearray(b'abcd') >>> b[1] 98 >>> b[1]=100 >>> b[1] 100
5、dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)
功能:返回一个字典
>>> dict() {} >>> dict(name='bianbian',age=18,love='pengpeng') {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'} >>> dict([('name','bianbian'),('age',18),('love','pengpeng')]) {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'} >>> dict([['name','bianbian'],['age',18],['love','pengpeng']]) {'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
6、exec(object[, globals[, locals]])
功能:有语句的和复杂的语句的字符串转换成表达式???
code = '''def timmer(func): #timmer(test) func=test def fex(*args,**kwargs):#传入非固定参数 res=func(*args,**kwargs) #传入非固定参数 return res return fex #不带参数 @timmer def test1(): # 相当于test1 = timmer(test1) print("in the test1") return "from the test1" # 执行函数test1有返回值 res = test1() print(res) ''' exec(code) #结果 in the test1 from the test1
7、filter(function, iterable)
功能:通过function过滤条件,去获取iterable中你想要的数据。
>>> a = filter(lambda n:n>5,range(10)) >>> a <filter object at 0x1033f4320> >>> for i in a: ... print(i) ... 6 7 8 9
8、float([x])
功能:把一个浮点类型的字符串转换为浮点类型的数据。
>>> float('0.372') 0.372 >>> float('+0.372') 0.372 >>> float(' -319') -319.0 >>> float('+1E6') 1000000.0
9、frozenset([iterable])
功能:把集合变成一个不可变的集合
>>> res=frozenset([1,2,3,4,5,1]) >>> res frozenset({1, 2, 3, 4, 5}) #去重的,不可变的集合 >>> dir(res) #没有可变的方法 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']
10、hex(x)
功能:把一个数字转成16进制
>>> hex(2728) '0xaa8'
11、int(x)
功能:把其他数据类型强制转换成int类型
>>> int(a) 180 >>> int(10.4) 10
12、iter(object[, sentinel])
功能:把一个普通序列转成迭代器
13、list([iterable])
功能:把其他序列转换成一个列表
>>> list((1,2,3,5,3,)) [1, 2, 3, 5, 3]
14、oct(x)
功能:把一个数转成8进制
>>> oct(10) '0o12' >>> oct(100) '0o144'
15、round(number[, ndigits])
功能:保留float数据类型位数
>>> round(1.43499,3) 1.435
16、str(object)
功能:把其他数据类型转换为字符串
>>> str(1) '1'
17、
tuple([iterable])
功能:把其他序列转换为一个元组
>>> tuple([1,43,5,6]) (1, 43, 5, 6)
四、判断类
1、callable(object)
功能:判断一个对象是否可以被调用,只有在后面有括号的,表示可以调用,比如:函数,类。
>>> callable([]) False >>> def test():pass ... >>> callable(test) True
2、chr(i)
功能:通过ascii的值,找到对应的字符
>>> b = bytearray("abcd",encoding="utf-8") >>> b bytearray(b'abcd') >>> b[1]=100 >>> b[1] 100 >>> chr(100) 'd'
3、ord(c)
功能:根据字符,找到对应的ascii值
>>> b = bytearray("abcd",encoding="utf-8") >>> b bytearray(b'abcd') >>> b[1]=100 >>> ord('d') 100
4、dir([object])
功能:看一个对象有哪些方法
>>> name=[] >>> dir(name) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
5、enumerate(iterable,start=0)
功能:遍历一个可迭代对象,获取索引和对应的元素的值
>>> a=['a','b','c','d'] >>> list(enumerate(a)) [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')] >>> list(enumerate(a,start=2)) [(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd')]
6、globals()
功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value
可以判断一个文件中的变量是否存在,而globals()只能打印全局变量
>>> print(globals()) {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': <filter object at 0x1033f4320>, 'i': 8, 'b': <map object at 0x1033c9a58>, 'reduce': <built-in function reduce>, 'res': frozenset({1, 2, 3, 4, 5})}
7、hash(object)
功能:反射出一个对象的对应的hash值。
>>> hash('bianbian') 2624987259895593164 >>> hash('18') -5605491781378490538 >>> hash('a') 7709350130933621133
看上图,试想一张表中5百万个用户信息,只能用for循环去查找,那样的话,效率会很低。
可以把每一个姓名对应的值,然后通过对应的key值去定位,key值是放在一个列表中,当我们去查找某个key值时,可以折半查找,这样大大减少了查找时间,提高效率,这种也叫二分法查找。
五、其他
1、help([object])
功能:显示对象的帮助信息
2、id(object)
功能:返回对象的内存地址
>>> a=180 >>> id(a) 4425784016
3、input([prompt])
功能:输入字符串
4、isinstance(object, classinfo)
功能:这个在迭代器中使用
5、locals()
功能:打印局部变量
def test(): local_var=19302 print(locals()) test()
print(globals().get("locals_var"))
#结果
{'local_var': 19302}
None
6、next(iterator[, default])
功能:返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常
>>> a=iter([1,2]) >>> next(a) 1 >>> next(a) 2 >>> next(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
7、object
功能:python中一切皆对象,每一个对象都有它的属性和方法
8、open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
功能:文件操作
9、print(*objects, sep=' ', end=' ', file=sys.stdout, flush=False)
功能:打印
10、range(stop)、range(start, stop[, step])
功能:生成一个迭代器
>>> range(5) range(0, 5) >>> range(1,5) range(1, 5) >>> range(1,5,3) range(1, 5, 3)
10、reversed(seq)
功能:反转一个序列,跟列表中的reversed方法是一样的
>>> reversed([1,3,5,6]) <list_reverseiterator object at 0x10807e3c8> >>> for i in reversed([1,3,5,6]): ... print(i) ... 6 5 3 1
11、slice(stop),slice(start, stop[, step])
功能:序列的切片
>>> a=[1,4,5,56,7,3] >>> a[slice(1,3)] [4, 5] >>> a[1:3] [4, 5]
12、sorted(iterable[, key][, reverse])
功能:对一个序列进行排序
>>> sorted([5,7,3,64,132,34,1]) [1, 3, 5, 7, 34, 64, 132] >>> a={1:2,4:5,6:7} >>> sorted(a) #默认是按key排序 [1, 4, 6] >>> b={'a':2,'b':5,'c':7} >>> sorted(b) #按key排序 ['a', 'b', 'c'] >>> sorted(b.items()) [('a', 2), ('b', 5), ('c', 7)] >>> sorted(b.items(),key = lambda x:x[1]) #按value排序 [('a', 2), ('b', 5), ('c', 7)]
13、type(object) 、type(name, bases, dict)
功能:查看一个对象的数据类型
14、vars([object])
功能:返回对象的所有属性
15、zip(*iterables)
功能:zip中文意思是拉链的意思,把两个序列一一对应起来
如果a的元素比b的多,则按照元素最少的那个来
>>> a=[1,3,4,5] >>> b=['a','b','c','d'] >>> for i in zip(a,b): ... print(i) ... (1, 'a') (3, 'b') (4, 'c') (5, 'd')
16、
__import__(name, globals=None, locals=None, fromlist=(), level=0)
功能:当导入的模块是一个字符串时,用__import__()
>>> import os >>> __import__('os') <module 'os' from '/Users/bianbian/anaconda3/lib/python3.7/os.py'>