1.内置函数的查找
- 内置函数都定义在一个叫builtins模块中,此模块默认在python环境启动的时候就自动导入,可以直接使用这些函数,不用import 模块名。
- globals():列出当前环境下所有的全局变量
globals函数 - 查看builtins模块中定义的函数:
builtins模块 - abs():绝对值函数。注意:内置函数是可以被赋值给其他变量的,同样也可以将其他对象赋值给内置函数,这时就完全变了。所以,内置函数不是Python关键字,要注意对它们的保护,不要使用和内置函数重名的变量名,这会让代码混乱,容易发生难以排查的错误
abs
函数
- all():接收一个可迭代对象,如果对象里的所有元素的bool运算值都是True,那么返回True,否则False。相当是与的作用
all函数
- any:接收一个可迭代对象,如果迭代对象里有一个元素的bool运算值是True,那么返回True,否则False;与all()是一对兄弟。相当于或的作用
any函数
- ascii():调用对象的__repr__()方法,获得该方法的返回值。__repr__()方法是由对象所属类型实现的方法,不可以简单地理解为print或echo
ascii函数
- bin()、oct()、hex():三个函数是将十进制数分别转换为2/8/16进制
进制转换函数
- bool():测试一个对象或表达式的执行结果是True还是False。实际上bool是一个类,不是函数,bool()的返回值是一个布尔类型的实例。builtins中的很多函数,其实都是类,比如bytes(),str()等等。只是因为称呼的习惯,我们叫它函数,严格意义上说,这是不对的。
bool函数
- bytearray():实例化一个bytearray类型的对象。参数可以是字符串、整数或者可迭代对象。bytearray是Python内置的一种可变的序列数据类型,具有大多数bytes类型同样的方法。
- 当参数是字符串的时候,需要指定编码类型。
- 当参数是整数时,会创建以该整数为长度,包含同样个数空的bytes对象的数组。
- 当参数是个可迭代的对象时,该对象必须是一个取值范围0 <= x < 256的整数序列。
bytearray
- bytes():将对象转换成字节类型。例如,s = '张三';m = bytes(s,encoding='utf-8')
bytes函数
- str():将对象转换成字符串类型,同样也可以指定编码方式。例如,str(bytes对象,encoding='utf-8')。bytes和str之间的互相转换,更多使用的是encode()和decode()方法。
- callable():判断对象是否可以被调用。如果某个对象具有__call__方法,那它就能被调用。
callable
- chr():返回某个十进制数对应的ASCII字符,例如:chr(99) = ‘c’。它可以配合random.randint(65,91)随机方法,生成随机字符,用于生产随机验证码。
chr函数
- ord():与chr()相反,返回某个ASCII字符对应的十进制数,例如,ord('A') = 65
ord函数
- classmethod()、staticmethod()和property():在类中使用的方法,用于生成类的方法、静态方法和属性的函数。
- compile():将字符串编译成Python能识别或执行的代码,也可以将文件读成字符串再编译。
- complex():通过数字或字符串生成复数类型对象,使用字符串的时候,+号左右不能有空白
complex函数
- delattr()、setattr()、getattr()、hasattr():类机制中,分别用来删除、设置、获取和判断属性。
- dir():显示对象所有的属性和方法。
dir函
- int()、float()、list()、dict()、set()、tuple():与bool()、str()、bytes()一样,它们都是实例化对应数据类型的类。
- divmod():除法,同时返回商和余数的元组。
divmod函数
- enumerate():在迭代对象的时候,额外提供一个序列号的输出。注意:enumerate(li,1)中的1表示从1开始序号,默认从0开始。注意,第二个参数才是你想要的序号开始,不是第一个参数。通常用于对那些无法提供序号的迭代对象使用。但对于字典,依然是无序的。
- eval():将字符串直接解读并执行。例如:s = "6*8",s是一个字符串,d = eval(s), d的结果是48。
eval函数
- exec():执行字符串或compile方法编译过的字符串,没有返回值
exe
- format():执行format(),其实就是调用该对象所属类的__format__方法,类似print功能。
format函数
- frozenset():返回一个不能增加和修改的集合类型对象
frozenset函数
- hash():为不可变对象(整数、字符串、元组等),例如字符串生成哈希值的函数。
hash函数
- help():返回对象的帮助文档
help函数
- id():返回对象的内存地址,常用来查看变量引用的变化,对象是否相同。
id函数
- input():接收用户输入,返回一个输入的字符串。
input函数
- isinstance():判断一个对象是否是某个类的实例,比type()方法适用面更广。
isinstance函数
- issubclass():issubclass(a,b),判断a是否是b的子类。
issubclass函数
- iter():制造一个迭代器,使其具备next()能力。
iter函数
- len():返回对象的长度
- locals():返回当前可用的局部变量
locals函数
- max()/min():返回给定集合里的最大或者最小的元素,可以指定排序的方法
max_min函数
- memoryview(obj):返回obj的内存视图对象。obj只能是bytes或bytesarray类型
memoryview函数
- next():通过调用迭代器的在__next__()方法,获取下一个元素
- object():该方法不接收任何参数,返回一个没有任何功能的对象。object是Python所有类的基类。
- open():打开文件的方法。在Python2里,还有一个file()方法,Python3中被废弃了。
- pow():幂函数 pow(3, 2) 结果是9
- repr():调用对象所属类的__repr__方法,与print功能类似。
repr函数
- reversed():反转,逆序对象。
reversed函数
- round():四舍五入
round函数
- slice():返回一个切片类型的对象。slice是一个类,一种Python的数据类型。Python将对列表等序列数据类型的切片功能单独拿出来设计了一个slice类,可在某些场合下使用。
slice函数
- sum():求和
sum函数
- super():调用父类。面向对象中类的机制相关。
- type():显示对象所属的数据类型。
- vars():与dir()方法类似,不过dir()方法返回的是key,vars()方法返回key的同时还把value一起打印了。
vars函数
- map():映射函数。使用指定的函数,处理可迭代对象,并将结果保存在一个map对象中,本质上和大数据的mapreduce中的map差不多。使用格式:obj = map(func, iterable),func是某个函数名,iterable是一个可迭代对象。
map函数
- filter():过滤器,用法和map类似。在函数中设定过滤的条件,逐一循环对象中的元素,将返回值为True时的元素留下(注意,不是留下返回值!),形成一个filter类型的迭代器。
filter函数1
filter函数2
- zip():组合对象,将对象逐一配对。
zip函数1
zip函数2
- 如果对象的长度不一致,多余的会被抛弃,以最短的为基础!
zip函数3
- sorted():排序方法,有key和reverse两个重要参数。
- 基础用法: 直接对序列进行排序
sorted函数1
- 指定排序的关键字:关键字必须是一个可调用的对象。例如下面的例子,规则是谁的绝对值大,谁就排在后面。
sorted函数2
- 指定按反序排列:下面的例子,首先按忽略大小写的字母顺序排序,然后倒序排列。
sorted函数3
- __import__(name):这个方法为我们提供了一种通过字符串反射包、库或模块的手段。其中的name是你想要导入的库的名称的字符串。下面的例子中,利用字符串“time”,导入了实际的time库,并赋值给t变量。这个变量实际就相当于import time的结果。然后使用t.time()进行调用。在某些场景下,这个方法非常有用。但是很多时候,它也存在安全问题,Python官方不建议经常使用它。
__import__函数