你不知道的python内建函数

你不知道的python内建函数

1、open(name[, mode[, buffering]])

open是用来打开文件进行读写操作的函数,默认的mode是’r'(只读),其他的包括’w'(覆盖写),’a’(追加写),’r+, w+, a+’这三个用来更新文件,即读和写。’rb,wb’用于读写二进制的文件,一般用于读写二进制文件,如图片等。open函数打开文件时默认使用的文本方式,即’rt’。buffering参数表示缓冲方式,默认为行缓冲。0表示不用缓冲,1表示行缓冲,其他正整数表示缓冲对应大小的字节数,负数表示使用默认的缓冲方式。

2、print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout)

由于print在python2中默认为语句声明,如果想使用print函数的话,需要使用以下方法来禁用默认声明:

3、iter(o[, sentinel])

iter函数返回一个迭代器,如果不传sentinel参数,则第一个参数o必须为序列,或是实现了迭代器协议的对象(实现了__iter__特殊方法的对象);如果提供的sentinel参数,则o必须为一个可调用对象,当迭代器返回的值等于sentinel时,则引发StopIteration,一个常见的应用场景是读取文件直到文件末尾。

4、next(iterator[, default])

next函数用于返回迭代器的下一个元素,如果提供了default参数,则当迭代器到结尾后返回该default值,如果不提供则引发StopIteration。

5、enumerate(sequence, start=0)

enumerate函数返回一个元组,第一个元素为计数,初值为0,即start参数的值,第二个元素为sequence中的元素值。如果想修改起始的计数值,则修改start参数即可。

6、int(x, base=10)

int函数默认以10进制将x转化为整数,其他进制2、8、16同样支持。long函数同int。

7、range(start, stop[, step])

range在python3中不再是函数,而是以类的身份存在,返回一个range类型的对象,包含特殊方法:__iter__即支持for迭代;__len__即可用len计算长度;__getitem__即可通过索引访问。严格来讲range对象并不是一个真正的迭代器,因为没有实现__next__特殊方法,但是它要比迭代器使用起来更加方便,只是使用范围比较小。不过有一点跟迭代器一样,就是不占内存,这点也是最大的优势。
参数方面默认的start=0,step=1,所以平时使用时一般只传入stop即可,但是在特殊需求时,则start和step参数就派上用场了,而且step支持负数。

8、all(iterable)

当iterable中的所有元素都为True则该函数返回True,否则有任一元素不为真,则返回False

9、any(iterable)

只要iterable中有一个元素为True则该函数返回True,如果iterable为空,则返回False。

10、divmod(a, b)

divmod函数返回一个元组,第一个元素为商,第二个元素为余数

11、type(object) && type(name, bases, dict)

只传入一个参数时,type返回object的类型,经常结合isinstance函数使用,来判断对象类型。如果传入三个参数,则是用来动态的声明一个类,name即类的名称,bases为要继承的类的元组,dict为类的属性字典。

12、bin(x)、oct(x)、hex(x)

将整数转化为二进制、八进制、十六进制数

13、cmp(x, y)

比较对象x、y的大小,x>y返回1;x<y返回-1; x==y返回0

14、round(number[, ndigits])

round函数返回number四舍五入后的浮点值,ndigits为保留的小数位数,默认为0

15、vars([object])

如果传入object参数,则会返回该对象的__dict__属性字典,当然前提是该对象必须是模块,类或实例对象,或者是包含__dict__属性的任何对象。

如果不传object参数,则返回同locals()

Comments are closed.