| 内置函数 | 说明 | 示例 |
1 | abs(x) | 求x的绝对值 | abs(-3.4) == 3.4 |
2 | all(x) | 判断中的序列x中的每个元素是否都是True,如果元素也是一个序列,则递归地判断 |
- all([True,True])==True
- all([True, False])==False
- all((True,[True]))==True
- all(((False),True))==False
|
3 | any(x) | 判断中的序列x中是否至少存在一个元素是True,如果元素也是一个序列,则递归地判断 |
- any([True,False])==True
- any((False,False))==False
- any([(True),False])==True
- any([False,(False)])==False
- any(((False),[True]))==True
|
4 | ascii(x) | 把x反编译成一个Python常量,并以字符串形式输出,其中不含有除ASCII字符外的其他字符 |
- ascii('123中国')=="'123\\u4e2d\\u56fd'"
- ascii('abc\txyz')=="'abc\\txyz'"
- len(ascii('abc'))==5
- ascii(123.456)=="123.456"
- ascii(3>2) == "True"
|
5 | bin(x) | 把整数x转换为二进制字符串,作用跟函数hex()类似。 |
- bin(12)=='0b1100'
- bin(64)=='0b1000000'
- bin(0xAB)=='0b10101011'
|
6 | bool(x) | 把x的值转为布尔值。如果x是整数0、浮点数0、空字符串''、空列表[]、空元组()或空集合{},转为False,其他转为True。如果x是对象,则调用x.__bool__(),缺省地该方法返回True。 |
- bool(0)==False
- bool(-1.23)==True
- bool('abc')==True
- bool('False')==True
- bool('')==False
- bool([])==False
- bool([0])==True
- bool({})==False
- bool((0))==False
- bool((0,))==True
|
7 | breakpoint(*args, **kwargs) | 调用sys.breakpointhook(*args, **kwargs) | |
8 | bytearray(x, ec) | 用ec指定的编码方式把字符串x转换为字节数组。 | bytearray('abc中国', 'utf-8')==b'abc\xe4\xb8\xad\xe5\x9b\xbd' |
9 | bytes(x, ec) | 用ec指定的编码方式把字符串x转换为bytes类型 | bytes('abc中国', 'utf-8')== b'abc\xe4\xb8\xad\xe5\x9b\xbd' |
10 | callable(x) | 判断x是不是一个函数或者方法或者lambda表达式 |
- callable(123)==False
- callable(abs)==True
- callabel(lambda: 12)==True
|
11 | chr(x) | 把unicode码x转换为对应的字符(包括汉字), 与ord()互为逆函数 |
- chr(65)=='A'
- chr(0x4e2d)=='中'
|
12 | classmethod(func) | 这是一个装饰器,在类中用来装饰一个函数,以表明它是一个类方法。与staticmethod的区别在于前者会把类作为第一个参数。 | class ABC: ????????@classmethod ????????def mm(cls, p1, p2): ? ? ? ? ? ? ? ? print(cls, p1, p2)? ABC.mm(p1=123, p2=456) |
13 | compile(src, path, mode) | 编译src并返回可以被exec()或eval()执行的代码, path是个文件路径用以存放可能的编译错误, mode='exec'表示编译src是个语句块,'single'表示可交互的单条语句,'eval'表示表达式。 | ss = compile(
? 'a=3+4\nprint(a)',
? 'error.txt', 'exec')
exec(ss) # 打印7
|
14 | complex(x) | 把数值x转换为复数。如果x是对象,则调用x.__complex__()函数。如果不能转换,则扔出ValueError或TypeError错误 | complex(1.23)==1.23+0j |
15 | copyright() | 打印输出Python版权信息, | copyright() |
16 ?? | credits() | 打印Python开发团队的感谢信息 | credits() |
17 | delattr(x, name) | 删除对象x中名为name的属性 | delattr(obj, 'attrname') |
18 | dict(x) | 把二维序列x转为字典 | dict((('a', 123), ('b', 456))) ==? ? ? ? ? ? ? ? ?{'a':123, 'b': 456} |
19 | dir(x) | 返回任意一个对象、类、包、变量、常量、函数、成员x的所有成员的名字列表 |
- dir()
- dir(abs)
- dir(str)
- dir(123)
- dir(True)
- dir(numpy)
|
20 | divmod(x, y) | 返回数值x整除y的商和余数 | divmod(123, 5)==(24, 3) |
21 | enumerate(x) | 按顺序遍历序列x,连续产生元组(i, e),其中e是序列x中的当前元素,i是其索引(从0开始) | for i, e in enumerate([10, 11, 12]): ? ? ? ? print(i, e) ???????? |
22 | eval(x, globals=None, locals=None) | 求解表达式x的值,x可以是字符串或者compile()的结果。globals和locals分别是语句中可能会用到的全局和局部变量的字典。globals和locals缺省时分别表示当前全局、局部变量字典 |
- eval('1+2+3')==6
- eval('a+6', {'a': 10}) == 16
|
23 | exec(x, globals=None, locals=None) | 执行语句或者语句模块x,x可以是字符串或者compile()的结果。globals和locals分别是语句中可能会用到的全局和局部变量的字典。globals和locals缺省时分别表示当前全局、局部变量字典 |
- exec('a = 1\nprint(a)') ?# 打印
- exec('for e in ls:\n\tprint(e+a)', {'ls':[1, 2]}, {'a':10}) ? # 打印11和12
|
24 | exit(x) | 以错误码x退出Python环境,0表示没有错误 | exit(0) |
25 | filter(func, xs) | 对序列xs中的每个元素执行func函数,只有返回True的元素才被保留 | filter(lambda a: a>3, [1,5,2,7]等价于(5,7) |
26 | float(x) | 如果x是整数,则转为相等的浮点数。如果x是False或True,则分别转为0.0和1.0。如果x是字符串,则按照十进制转换。如果x是对象,则调用x.__float__()。不能转换的扔出ValueError错误。 |
- float(3)==3.0
- float('123.45')==123.45
- float(True)==1.0
|
27 | format(obj, spec='') | 相当于调用obj.__format__(spec) | |
28 | frozenset(xs) | 把序列xs转换为 frozenset类型,frozenset与set的不同仅在于前者不能增加或者删除元素 | frozenset([5, 2, 7, 1])等价于冻结的{5, 2, 7, 1}? |
29 | getattr(obj, name) | 获取对象obj的名为name的属性的值 | getattr(12+7j, 'imag')==7.0 |
30 | globals() | 返回当前的所有全局变量字典。程序员可以向该字典中添加或者删除变量,以便动态地定义或删除全局变量。参见locals() | globals()['abc']=123等价于声明全局变量abc,并且令其初值为123 |
31 | hasattr(obj, name) | 判断对象obj有没有名为name的属性 | hasattr(12+7j, 'real')==True |
32 | hash(obj) | 获取散列值,在把obj插入字典时有重要作用。等价于调用obj.__hash__(),缺省地,这个函数将返回对象在内存中的地址转换成的散列值 | hash(12+7j) |
33 | help() | 打开Python帮助系统 | |
34 | hex(x) | 把整数x转换为十六进制字符串,作用跟函数bin()类似。如果x不是整数则扔出TypeError错误 |
- hex(123)=='0x7b'
- hex(789)=='0x315'
|
35 | id(x) | 返回对象或者基本类型数据x的id,该id通常是x在内存中的地址。 |
- id('abc')==140591343332848
- id(True)==4332063440
- id(123)==140591322433712
- id(['a', 'b'])==140591347517376
|
36 | input(prompt) | 在屏幕上显示提示信息prompt,然后等待用户的输入,回车表示输入结束。直接回车会返回一个空字符串''。在*nix操作系统下按Ctrl-D,或者在Windows下按Ctrl-Z+Return,会导致EOFError。 | |
37 | int(x) | 把基本类型数据x转换为整数。True和False分别转换为1和0,正浮点数下取整,负浮点数上取整,字符串按十进制转换。如果x是对象,则调用x.__int__()函数。不能转换的扔出ValueError错误 |
- int('123')==123
- int(True)==1
- int(3.6)==3
- int(-3.6)==-3
|
38 | isinstance(obj, t) | 判断对象obj是不是t或者其子孙类型,t可以是基本类型或者类或者它们的元组,元组中只要有一个是obj的类型就返回True |
- isinstance(123, int)==True
- isinstance('abc', str)==True
- isinstance(True, (str, bool, int))==True
|
39 | issubclass(t1, t2) | 判断t1是不是t2或者其子孙类型,t2可以是基本类型或者类或者它们的元组,元组中只要有一个是t1或者它的祖先就返回True |
- issubclass(float, int)==False
- issubclass(int, float)==False
|
40 | iter(obj) | 调用obj.__iter__()以获得一个迭代器(Iterator)。迭代器是这样一种对象,它的.__next__()函数被重定义了,因此可以用next()函数调用。生成器(Generator)就是一种迭代器。所有序列对象的.__iter__()已经被重定义 | a = [11, 'abc']
a = iter(a)
print(next(a)) # 打印11
print(next(a)) # 打印abc
print(next(a)) #StopIteration
|
41 | len(xs) | 调用序列或者对象xs.__len__()函数以获取xs的长度。str、list、tuple、set、dict已经重定义了该函数以获取对象的长度。 | class A:
def __len__(self):
return 123
print(len(A())) # 打印123 |
42 | license() | 打印输出Python的许可信息 | |
43 | list(x) | 如果x是元组、集合,则转为列表。如果x是字典,则返回它的键构成的列表。如果x是对象,则调用x.__iter__()以获取一个迭代器,然后用该迭代器的输出结果构成一个列表返回,如果.__iter__()没有定义则扔出TypeError错误 |
- list((1, 2, 3))==[1, 2, 3]
- list({1, 2, 3})==[1, 2, 3]
- list({'a':1, 'b':2})==['a', 'b']
|
44 | locals() | 返回当前的所有局部变量字典。程序员可以向该字典中添加或者删除变量,以便动态地定义或删除局部变量。当调用一个函数时,在函数体内是局部环境,函数体外是全局环境。局部变量包括参数和函数体中定义的局部变量。参见globals() | locals()['abc']=123等价于声明局部变量abc,并且令其初值为123 |
45 | map(func, *iterables) | 从iterables的每个序列中分别取数据,然后调用func,结果构成一个迭代器。序列长度不同时以最短的一个为准。参见iter() | map(lambda a, b: a+b, [1, 2, 3], (10, 20 ,30))等价于(11, 22, 33) |
46 | max(iterable,key=None) | 返回序列iterable中的最大值。key是一个函数f(a),用来获取iterable中每个元素a的键,最终以键的比较为准。 |
- max([1, 9, 7, 12]) == 12
- max(['aaa', 'bb', 'c'])=='c'
- max(['aaa', 'bb', 'c'], key=lambda a: len(a)) == 'aaa'
|
46* | max(*ps, key=None) | 返回序列列表ps中的最大值。key是一个函数f(a),用来获取iterable中每个元素a的键,最终以键的比较为准。 |
- max(1, 9, 7, 12) == 12
- max('aaa', 'bb', 'c')=='c'
- max('aaa', 'bb', 'c', key=lambda a: len(a)) == 'aaa'
|
47 | memoryview(bytes) | 返回bytes的内存查看对象,可用来查看bytes中每个字节而不用复制bytes |
- memoryview(b'abc')等价于(97, 98, 99)
|
48 | min(iterable,key=None) | 返回序列iterable中的最小值。key是一个函数f(a),用来获取iterable中每个元素a的键,最终以键的比较为准。 |
- min([1, 9, 7, 12]) == 1
- min(['aaa', 'bb', 'c'])=='aaa'
- min(['aaa', 'bb', 'c'], key=lambda a: len(a)) == 'c'
|
48* | min(*ps,key=None) | 返回列表ps中的最小值。key是一个函数f(a),用来获取iterable中每个元素a的键,最终以键的比较为准。 |
- min(1, 9, 7, 12) == 1
- min('aaa', 'bb', 'c')=='aaa'
- min('aaa', 'bb', 'c', key=lambda a: len(a)) == 'c'
|
49 | next(obj) | 调用obj.__next__()函数以获取下一个元素,生成器、迭代器都重定义了该函数 | next(iter([1, 2, 3]))==1 |
50 | object | 所有内置或用户自定义类的祖先类,类似于Java中的Object | object() |
51 | oct(x) | 把整数x转换为八进制字符串,作用跟函数bin()和hex()类似。 |
- oct(12)=='0o14'
- oct(64)=='0o100'
- oct(0xAB)=='0o253'
|
52 | open(path, mode='r', buffering=-1, encoding=None) | 打开路径path所指定的文件,mode可以是字符'r', 'w', 'a', 'x', '+', ?‘b', 't'的组合,分别表示只读、只写、添加、新文件只写、读写、二进制、文本(缺省模式)。buffering指明缓冲形式,0表示在二进制模式下没有缓冲,1表示在文本模式下使用行缓冲,大于1表示正常的缓冲区大小。缺省时,缓冲大小通常是8192或者4096。encoding表示文本的编码方式,如‘utf-8'。缺省值依赖于操作系统 | |
53 | ord(ch) | 返回字符ch的unicode编码,与chr()互为逆函数。英文26个字母和数字字符的unicode编码等于其ASCII编码。unicode是目前最广泛使用的编码,几乎囊括了世界上所有主要语言的所有字符 |
- ord('A')==65
- ord('a')==97
- ord('0')==48
- ord('中')==20013
|
54 | pow(x, y, z=None) | 如果z提供的话,求(x**y) % z的值,否则求x**y的值。如果x是对象的话,调用x.__pow__(y, z)。不能调用时抛出TypeError错误 | pow(5, 2, 3)==1 |
55 | print(*values, sep=' ', end='\n', file=None) | 打印函数。打印列表values中的所有值,sep是每两个相邻值之间的分隔符,缺省是空格。end是最后添加的字符,缺省是换行符。file是个文件流(Stream),表示打印到哪个文件,缺省是sys.stdout | print(1,2,3,sep=',') ?# 打印1,2,3 |
56 | property() | 装饰器,用来装饰一个不带参数成员方法,使得调用它的时候不用带圆括号 | class A: ? ? ? ? @property ? ? ? ? def mm(self): ? ? ? ? ? ? ? ? pass a = A() print(a.mm) |
57 | quit(code=0) | 终止运行,退出Python程序或者命令行,code是出错码 | quit(1) |
58 | range(n) | 返回序列0、1、2、......、n-1。n是整数 | |
58* | range(start, end, step=1) | 返回序列start、start+step、start+2*step、......、start+((end-start)//step-1)*step。start、end、step都是整数 | range(3, 14, 4)等价于[3, 7, 11] |
59 | repr(obj) | ?调用obj.__repr__()函数,对大多数对象来说,eval(repr(obj))==obj | |
60 | reversed(xs) | 返回序列xs的逆序列 | reversed([1, 2, 3])等价于(3, 2, 1) |
61 | round(x, digits=None) | 返回数值x四舍五入的结果。digits表示小数点后的位数,缺省时表示返回整数。digits可以是负的 |
- round(3.5)==4
- round(-3.5)=-4
- round(1.2345, 2)==1.23
- round(1234.5, -2)==1200.0
|
62 | set(xs) | 把序列xs转为集合 |
- set()=={}
- set([1, 3, 2, 3]) == {1, 2, 3}
- set({'a':1, 'b': 2})=={'b', 'a'}
|
63 | setattr(obj, name, value) | 把对象obj的名为name的属性设置为value,参见getattr() | |
64 | slice(start, end, step=1) | 构建一个从整数start开始到end(不包含)为止,step为步长构建一个下标序列 | a=slice(1, 9, 2) b=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b[a]==[2, 4, 6, 8] |
64* | slice(end) | 等价于slice(0, end, 1) | |
65 | sorted(*iterable, key=None, reverse=False) | 用key所定义的函数对iterable中的每个元素取键,然后返回生序序列。reverse=True返回降序序列 | sorted([1, 3, 2, 5])==[1, 2, 3, 5] |
66 | staticmethod() | 装饰器,同classmethod,不同点仅在于用@staticmethod修饰的函数不带cls参数 | |
67 | str(x) | 如果x是基本类型数据,则把它转换为字符串。如果x是对象,则调用x.__str__()函数,没有定义该函数的调用x.__repr__(),如果后者仍然没有定义,则给出Python对对象缺省定义的字符串,该字符串含有对象的包名、类名和在内存中的地址。 |
- str(123)=='123'
- str(123.456)=='123.456'
- str(True)=='True'
- str([1,2,3])=='[1, 2, 3]'
- str({1, 2, 3})=='{1, 2, 3}'
- str((1))=='1'
- str((1,))=='(1,)'
- str({'a': 1, 'b': 2})=="{'a': 1, 'b': 2}"
|
68 | sum(iterable, start=0)? | 对序列iterable求和,结果加上start。注意,iterable不是可变参数 | sum([1, 2, 3])==6 |
69 | super(cls, obj) | 把obj转成类cls的父类对象并返回。结果中的方法都是在父类或祖先类中定义的,不含在cls中定义的。 | super(MyClass, myObj).__init__() |
70 | tuple(iterable) | 把序列iterable转为元组 | tuple([1, 2, 3]) == (1, 2, 3) |
71 | type(obj) | 返回对象obj的类型 | type(123)==int |
72 | vars(obj==None) | vars等同于locals(), 否则调用obj.__dict__()以获取由对象obj的属性和值构成的字典 | |
73 | zip(*iterables) | 对iterables中的每个序列同时循环,输出每个序列的当前值直到最短的一个序列结束为止。 | zip([1, 2, 3], [4, 5, 6])等价于((1, 4), (2, 5), (3, 6)) |