python内置函数介绍
a开头的内置函数
python内置函数之abs,返回数字的绝对值
1. abs函数的作用
python内置函数abs返回一个数的绝对值,参数可以是整数,浮点数,或者是实现了__abs__方法的对象。
2. abs语法
abs(x) |
3. 参数
abs接收一个参数,参数类型可以是int,float, 或者是实现了__abs__方法的对象。
4. 示例
print(abs(-1)) # 1 |
下面举一个实现了__abs__ 方法对象的例子
class Demo(): |
demo对象实现了__abs__方法,当demo作为abs的参数时,abs函数会调用demo的__abs__方法,将方法的返回值做为abs函数的返回值。
python内置函数all详解
1. all函数作用
python内置函数all可用于判断传入的可迭代参数 iterable 中的所有元素是否都为True,如果是则返回True,反之返回False。如果可迭代对象是空的,也会返回True。
在判断元素是否为True时,只要元素不是0、空、None、False,就视为True。
2. 语法
all(iterable) |
3. 参数
iterable 是可迭代对象,通常传入的是列表或者元组
4. 示例代码
print(all([True, 4, 7])) # True |
如果传入的是一个空列表或者空元组,all函数会返回True,这的确有点出乎意料,但all函数确实如此。
python内置函数any详解
any函数作用
python内置函数any可判断传入的可迭代参数 iterable中是否至少有一个元素是True,如果是则返回True,如果一个为True的元素都没有,就返回False。如果iterable 为空,则返回Fasel,判断元素是否为True,0,None,空字符串等价于False,除此以外,等价于True。
any 语法
any(iterable) |
参数
any函数只接受一个参数,iterable 是可迭代对象,通常传入列表和元组
返回值
返回bool类型
示例代码
print(any([3, 5, 8, False])) # True |
b开头的内置函数
python内置函数bytes详解
bytes功能作用
python内置函数bytes返回一个新的bytes类型的对象,bytes类型对象是不可变序列,包含范围为 0 <= x < 256 的整数。bytes可以看做是bytearray的不可变版本,它同样支持索引和切片操作 bytes语法 class bytes([source[, encoding[, errors]]])
bytes语法
class bytes([source[, encoding[, errors]]]) |
参数
可选形参source可以传入字符串,int,iterable 可迭代对象, 遵循 缓冲区接口 的对象, 不同的类型将有不同的效果:
- string ,如果source是字符串,则必须指定encoding参数,bytearray() 会使用 str.encode() 方法来将 string 转变成 bytes
- int ,如果source是int,会初始化大小为该数字的数组,并使用 null 字节填充
- 如果是一个遵循 缓冲区接口 的对象,该对象的只读缓冲区将被用来初始化字节数组
- iterable 可迭代对象, 要求元素的范围必须是 0 <= x < 256 的整数,它会被用作数组的初始内容
- 如果没有传入source参数,则返回一个长度为0的bytes数组
返回值
bytes类型对象
示例代码
print(bytes()) |
程序输出结果
b'' |
python内置函数bin,返回int数值的二进制字符串
1. 函数bin的作用
python内置函数bin以字符串的形式返回int类型数据的二进制表示,返回值以0b开头,紧跟着的是int的二进制表示。
2. bin语法
bin(x) |
3. 参数与返回值
传入的参数x的类型必须是int,bin的返回值是字符串类型
4. 示例代码
print(bin(3)) # 0b11 |
python内置函数bool详解
1. bool函数作用
python内置函数bool可将给定参数转换为bool类型,bool函数的返回值要么是True,要么是False,在做转换时,0, None,空字符串,空列表,空元组,空集合,空字典都会被转换为False,除此以外都转换为True。
2. bool语法
class bool([x]) |
3. 参数与返回值
bool函数可以传入任意类型的参数,也可以不传参数,如果不传,则返回False。bool 类型是int的子类,它只有两个值,True和False
4. 示例代码
print(bool([])) # False |
python内置函数bytearray详解
bytearray功能作用
python的内置函数bytearray返回一个新的 bytes 数组,bytearray 类是一个可变序列,包含范围为 0 <= x < 256 的整数。
bytearray语法
class bytearray([source[, encoding[, errors]]]) |
参数
可选形参source可以传入字符串,int,iterable 可迭代对象, 遵循 缓冲区接口 的对象, 不同的类型将有不同的效果:
- string ,如果source是字符串,则必须指定encoding参数,bytearray() 会使用 str.encode() 方法来将 string 转变成 bytes
- int ,如果source是int,会初始化大小为该数字的数组,并使用 null 字节填充
- 如果是一个遵循 缓冲区接口 的对象,该对象的只读缓冲区将被用来初始化字节数组
- iterable 可迭代对象, 要求元素的范围必须是 0 <= x < 256 的整数,它会被用作数组的初始内容
- 如果没有传入source参数,则返回一个长度为0的bytes数组
返回值
bytes数组
示例代码
print(bytearray()) |
程序输出结果
bytearray(b'') |
C开头的内置函数
python内置函数compile详解
compile函数功能作用
python内置函数compile 可以将字符串编译成字节代码或者AST对象,字节代码对象可以被exec() 或 eval() 执行。
compile函数语法
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=- 1) |
参数
- source 可以是字符串或者字节字符串,后者AST对象
- filename 是代码读取的文件名,source是从哪个文件里读取的,就用哪个文件的名称,如果不是从文件读取的source,则填写一个可辨识值,一般用’’
- mode 编码模式,如果source是语句,则mode可以是exec,如果是单一表达式,则可以是eval,如果source是单个交互式语句,mode可以是single
- flags 和 dont_inherit 用来控制编译源码时的标志,一般情况下使用默认值
返回值
字节代码或AST对象
示例代码
单一表达式
exp = "3*3 + 7 + 8" |
python语句
code_string = """ |
执行exec(code) 就如同执行了code_string所代表的代码,test函数会被调用,输出”ok”。
如果source只是一个表达式,那么mode应当使用eval,执行编译后的字节码也用eval;如果source是python语句,那么mode应当使用exec,执行编译后的字节码也要用exec。
最后举一个source为ast对象的例子
import ast |
程序最终输出Hello world!
python内置函数chr详解
chr函数功能作用
python内置函数chr根据传入的int类型参数返回对应的Unicode 码位的字符,比如chr(65) 返回的是字符串A,在ascii码表里,字符A的十进制值是65,chr的参数值大小可以超过ascii码表的范围,chr是ord的逆函数。
chr函数语法
chr(i) |
参数
- i int类型数值
返回值
i 对应的Unicode 码位的字符
实例代码
chr(65) |
python内置函数callable详解
callable函数功能作用
callable函数可用于判断一个对象是否可以被调用,若对象可以被调用则返回True,反之则返回False。所谓可调用,是指代码里可以在对象后面跟上一对小括号,函数,方法,类都是可以被调用,实现了__call__方法的对象也可以被调用。
callable函数语法
callable(object) |
参数
- object 被判断的对象
返回值
返回值是bool类型,如果object可以被调用,则返回True,反之返回False
实例代码
print(callable(sum)) # True 内置函数sum是callable的 |
d开头的内置函数
python内置函数dict详解
dict函数功能作用
python内置函数dict可用于生成字典对象,其实dict是一个类而非函数,但命名遵守了函数命名原则而没有采用类的命名原则,使用时与函数调用无异,因此习惯性被称之为内置函数。
dict函数语法
class dict(**kwarg) |
参数
- kwarg 关键字参数
- mapping 关联式的容器类型
- iterable 可迭代对象
返回值
一个新字典
示例代码
传入一个字典
new_dict = dict({'name': '小明', 'age': 14}) |
传入关键字参数
new_dict = dict(name='小明', age=14) |
传入可迭代对象
new_dict = dict([('name', '小明'), ('age', 14)]) |
python内置函数divmod详解
divmod函数功能作用
python内置函数divmod以元组的形式返回两个数字a,b 做除法的商和余数,当a和b均为整数时返回值等价于(a//b, a%b)
divmod函数语法
divmod(a, b) |
参数
- a 数字
- b 数字
返回值
元组
实例代码
>>> divmod(9 ,3) |
python内置函数delattr详解
delattr函数功能作用
python内置函数delattr可以将对象的一个属性删除,如果对象本身没有这个属性,delattr会报AttributeError错误,被删除后,如果试图访问对象的这个属性,将会引发AttributeError错误。
delattr函数语法
def delattr(x, y): # real signature unknown; restored from __doc__ |
参数
- object 任意对象
- name 字符串,希望被删除的对象属性
返回值
无
示例代码
class Stu(): |
程序输出结果
小明 |
第一个print语句可以输出sut对象的name属性,delattr删除了stu的name属性,因此第二个print语句会引发AttributeError异常,如果尝试删除一个不存在的属性,也会引发AttributeError异常,如下面的语句
delattr(stu, 'address') |
python内置函数dir详解
dir函数功能作用
python内置函数在没有实参时返回当前作用域中的名称列表,有实参时,返回该实参对象的属性列表,通常使用dir函数查看一个对象的属性和方法。
dir函数语法
dir([object]) |
参数
- object 可选参数,可传入一个对象
返回值
不传object实参时,返回当前作用域的名称列表,有实参时,返回实参对象的属性列表
示例代码
不传实参
name = "小明" |
程序输出
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', |
传入实参
class Test(): |
程序输出结果
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', |
e开头的内置函数
python内置函数eval详解
eval函数功能作用
python内置函数eval解析字符串并将其当做有效的表达式来求值并返回计算结果,由于eval不对表达式进行检查,因此存在安全漏洞,容易被不法人员利用,官方推荐使用ast.literal_eval来替代eval函数
eval函数语法
eval(expression[, globals[, locals]]) |
参数
- expression 字符串,内容为表达式
- globals 字典,默认使用当前作用域的全局命名空间
- locals 映射类型对象,默认使用当前作用域的局部命名空间
返回值
表达式计算结果
示例代码
exp = "3 + 4*5" |
exp是一个字符串,eval能够解析并执行它,eval的功能非常强大,只要表达式是合法的,就能执行。
def test(): |
exp的内容是一个表达式,test() 调用执行函数test,eval对这种函数调用的表达式也可以解析并执行。
eval可以视作一种动态执行python代码的方法,在不提供固定编码的前提下,通过生成exp表达式然后用eval执行的方式动态执行python代码。
python内置函数exec详解
exec函数功能作用
python内置函数exec支持动态执行python代码,传入exec函数的object实参可以是字符串,也可以是字节码对象。如果object实参是字符串则会被exec函数编译并执行,如果是字节码对象则会被直接执行。通常exec配合compile函数来使用。
exec函数语法
exec(object[, globals[, locals]]) |
参数
- object 可以是字符串或者字节码对象
- globals 可选参数,如果提供了必须是字典对象,若不提供,则使用当前作用域里的globals
- locals 可选参数,任意字典映射对象
一旦提供了globals 和 locals, 代码执行起来就像嵌入到某个类定义中一样
返回值
无
示例代码
object实参是字符串
exec("print('ok')") # ok |
虽然字符串”4 + 5” 也能被exec执行,但并没有返回结果,这一点一定要注意
object实参是字节码
exp = "3*3 + 7 + 8" |
python内置函数enumerate详解
enumerate函数功能作用
python内置函数enumerate一般是for循环语句中使用,用于遍历可迭代对象,enumerate函数返回一个迭代器,迭代器的__next__方法返回一个元组,元组的第一个元素是从0开始的计数值,第二个元素是计数值所对应的可迭代对象里的元素。
enumerate函数语法
enumerate(iterable, start=0) |
参数
- iterable 可迭代对象,如列表,元组,字符串
- start 默认从0开始,start不会影响对可迭代对象的遍历过程,只是改变计数值的起始值
返回值
迭代器
示例代码
enumerate函数返回的是一个迭代器,可以使用list函数将其转为列表
lst = ['python', 'php', 'java'] |
并没有因设置start=1而导致enumerate的返回值有所减少,只是各项遍历的值的计数值发生了变化。,
在for循环中使用enumerate,可以在遍历的同时得到对象的索引
lst = ['python', 'php', 'java'] |
程序输出
python 的索引是0 |
e开头的内置函数
python内置函数filter详解
filter函数功能作用
python内置函数filter的语法是filter(function, iterable),它使用function对iterable中的数据进行过滤,只保留那些返回True的元素。
filter(function, iterable)相当于一个生成器表达式,当function参数不为None时,等价于(item for item in iterable if function(item)),当function为None时,等价于(item for item in iterable if item)。
filter函数语法
filter(function, iterable) |
参数
- function 必须是函数
- iterable iterable 可以是一个序列,一个支持迭代的容器,或一个迭代器
返回值
返回迭代器
示例代码
function为None
lst = [1, False, 2, 0, True] |
程序输出
1 |
function为lambda函数
lst = [1, 2, 3, 4, 5] |
程序输出
2 |
function为普通函数
lst = [1, 2, 3, 4, 5] |
程序输出
4 |
python内置函数float详解
float函数功能作用
python内置函数将数字或字符串转为float类型参数,如果不传入实参,则返回0.0,如果传入的实参是字符串,那么字符串在字面上应当符合数字的定义,且允许字符串开头是+号或者-号。
flaot函数语法
class float([x]) |
参数
- x 可选参数,不传时,float返回0.0, x可以是int,float,bool, 字符串类型
返回值
float类型数据
示例代码
float() |
python内置函数frozenset详解
forzenset函数功能作用
python内置函数forzenset 返回一个不可改变的集合,frozenset集合一旦被创建就无法被修改,既不能增加新的元素也不能删除元素。由于无法修改,frozenset可以做字典的key或者另一个集合的元素。
forzenset函数语法
frozenset([iterable]) |
参数
- iterable 可选参数,可迭代对象
返回值
frozenset,不可修改的集合对象
实例代码
immutable_set = frozenset([1, 2, 3]) |
frozenset对象没有add方法,不能添加新的元素。
e开头的内置函数
python内置函数getattr详解
getattr函数功能作用
python内置函数getattr根据属性名称返回对象的属性值,如果属性不存在,可以在getattr的参数里指定返回的默认值,如果没有指定default,引发AttributeError。
getatter函数语法
getattr(object, name[, default]) |
参数
- object 对象
- name 字符串,对象的属性名称
- default 当属性不存在时默认的返回值
返回值
对象的属性值
示例代码
class Stu(): |
python内置函数globals详解
globals函数功能作用
python内置函数globals以字典的形式返回当前模块命名空间里的全局变量,这些全局变量包含有关程序的所有必要信息,比如__name__, builtins
globals函数语法
globals() |
参数
globals函数没有参数
返回值
字典
示例代码
class Stu(): |
程序输出
{'__name__': '__main__', '__doc__': None, '__package__': None, |
除了模块自身的全局变量,globals还返回了我定义的Stu和g_dict。
h开头的内置函数
python内置函数hash详解
hash函数功能作用
python内置函数hash返回一个对象的hash值,hash值在字典查找元素用来快速比较字典的键,相同大小的数字例如1和1.0 拥有相同的hash值,尽管他们是不同的类型。
并不是所有的对象都有哈希值,比如列表,字典,集合这类可变对象就没有哈希值。
hash函数语法
hash(object) |
参数
- boject 被求hash值的对象
返回值
hash值,int类型
示例代码
print(hash(1)) # 1 |
python内置函数hex详解
hex函数功能作用
python内置函数hex以字符串的形式返回int数据的16进制表示形式,字符串以0x为前缀,如果传入hex的参数不是int类型,那么这个对象必须实现__index__()方法,hex将调用该方法并返回。
hex函数语法
hex(x) |
参数
- x int类型对象或者是实现了__index__()方法的对象
返回值
对象的16进制表示形式
示例代码
hex(4) |
python内置函数hasattr详解
hasattr函数功能作用
python内置函数hasattr判断对象是否拥有某个属性,如果有则返回True,若没有则返回False。
hasattr函数语法
hasattr(object, name) |
参数
- object 对象
- name 属性的名称
返回值
返回True或者False
示例代码
class Stu(): |
i开头的内置函数
python内置函数isinstance详解
isinstance(object, classinfo)函数功能作用
python内置函数isinstance用于判断一个object对象是否是给定classinfo的实例对象,如果是则返回True,反之返回False。classinfo可以是类,也可以是由类组成的元组。
isinstance函数语法
isinstance(object, classinfo) |
参数
- object 实例对象
- classinfo 给定的类,或者是由类组成的元组
返回值
bool类型
示例代码
基础数据类型的例子
isinstance(1, int) |
自定义类的例子
class A(): |
b是B的示例对象,但A是B的父类,因此isinstance(b, A)也同样返回True。
classinfo是元组的例子
isinstance(1, (int, str)) |
classinfo传入的实参是元组(int, str), 这里有两个类,object如果是其中某个一个类的实例对象,isinstance就会返回True。
python内置函数issubclass详解
issubclass(class, classinfo)函数功能作用
python内置函数issubclass判断一个类是否是另一个类的子类,判断规则如下:
- 一个类可以认为是自己的子类
- 两个类存在间接继承关系,认为是子类
- classinfo可以是一个元组,class是其中某一个类的子类,函数就返回True。
issubclass函数语法
def issubclass(class, classinfo): |
参数
- class 类
- classinfo 类或者元组
返回值
True或者False
示例代码
print(issubclass(bool, int)) # True |
python内置函数iter详解
iter函数功能作用
python内置函数iter返回一个迭代器对象,iter函数有两个参数,object 和 sentinel,如果没有sentinel实参,那么object必须是可迭代对象即必须实现__iter__() 方法。sentinel ,object必须是可调用对象。
iter函数语法
iter(object[, sentinel]) |
参数
- object 可迭代对象或者可调用对象
- sentinel 当传入sentinel实参是,object必须是可调用对象,iter会一直调用object直到返回sentinel
示例代码
不传sentinel
lst = [1, 2, 3 ,4] |
iter返回的是一个迭代器,使用next函数可以从迭代器中取出具体的值。
传sentinel
from functools import partial |
partial(f.read, 64) 返回一个偏函数,是可调用对象,一次读取64字节的数据。在for循环中,iter会一直调用这个偏函数,直到偏函数返回的内容是b’’, 这代表文件内容读取到了末尾。
python内置函数int详解
int函数功能作用
python内置函数int将数字或者字符串转换成int类型数据。
int函数语法
class int(x, base=10) |
参数
- x 数字或者字符串类型
- base 默认是10,表示10进制,还可以取值 0 或者 2-36 ,如果提供了base, x必须是字符串
返回值
int类型数据
示例代码
int(3.4) |
前两个例子容易理解,后两个例子需要你能够了解如何进行进制转换,8进制是逢8进1,因此8进制13中的1表示的是8的1次方,3 就表示3,8+3 = 11,正是int函数的转换结果。
python内置函数input详解
input函数功能作用
python内置函数input从标准输入中读取一行数据,将其转换为字符串(除了末尾的换行符)并返回,input函数永远返回字符串。
input函数语法
input([prompt]) |
参数
- prompt 可选参数,如果存在则写入到标准输出,起到提示用户的目的
返回值
以字符串的方式返回用户输入的一行数据
示例代码
value = input("请输入一个整数:") |
python内置函数id详解
id函数功能作用
python内置函数id返回对象的唯一标识符,这个值是一个整数,在对象的整个生命周期中这个值是唯一的而且不变,在cpython实现里,id函数返回的是对象的内存地址。
id函数语法
id(object) |
参数
- object 任意对象
返回值
对象的唯一标识符,在cpython中,唯一标识符就是对象的内存地址
示例代码
a = [] |
变量a和变量b 都是空列表,但他们的内存地址是不相同的,内存地址是否相同可以作为判断两个对象是否是同一个对象的依据。
a == b |
l开头的内置函数
python内置函数locals详解
locals函数功能作用
python内置函数locals以字典的形式返回当前作用域的变量,在全局作用域中调用locals函数的返回值与调用globals函数相同
locals函数语法
locals() |
参数
locals函数没有参数
返回值
当前作用域的变量
示例代码
def test(): |
在全局作用域中调用locals函数,得到的返回值与调用globals相同。
python内置函数list详解
list函数功能
python内置函数list将可迭代对象转换为list类型,可以转换的对象有字符串,列表,元组,range函数的返回值,字典keys,values方法的返回值。
list函数语法
class list([iterable]) |
参数
- iterable 可迭代对象
返回值
列表
示例代码
list("abc") |
python内置函数len详解
len函数功能作用
python内置函数len返回对象的长度,实参可以序列,例如列表,元组,字符串,字节串,也可以是集合,例如字典,set,frozen set。
关于len函数,一直存在一个讨论话题,其他编程语言都将这个功能设计为对象的方法,比如java中string.length,为什么python为什么要设计成内置函数呢。
迄今为止,最有说服力的解释是这样回答的:practicality beats purity,这是python之禅中的一条,翻译成中文是:实用胜过纯粹。当你使用len函数获取一个字符串的长度时,python解释器会在内存中直接从字符串底层的一个c 结构体里取出长度值,这比调用方法要快的多。获取对象的长度是一个很常见的操作,因此必须高效。
len语法
len(s) |
参数
- s 序列对象或者集合对象
示例
len([1, 3, 4]) |
m开头的内置函数
python内置函数min详解
min函数功能作用
python内置函数min返回可迭代对象的最小元素或者多个实参中的最小值。如果min函数只传入一个位置参数,那么这个实参必须是可迭代对象,min函数返回可迭代对象的最小值,如果传入多个位置参数,min函数返回他们中的最小值。
min函数语法
min(iterable, *[, key, default]) |
参数
- iterable 可迭代对象,必须非空
- arg1, arg2 多个位置参数
返回值
- 只传入一个可迭代对象时,返回可迭代对象的最小值
- 传入多个位置参数时,返回他们中的最小的
示例代码
传入可迭代对象
`python >>> min([4, 6, 1, 3])` |
可迭代对象必须有值,不能为空,否则会报ValueError错误。
传入多个位置参数
min(4, 6, 3) |
python内置函数max详解
max函数功能作用
python内置函数max返回可迭代对象最大的元素或者返回多个实参中的最大值。如果max函数只传入了一个位置参数,那么这个实参必须是非空的可迭代对象,max返回可迭代对象的最大致,如果传入了多个位置参数,则返回最大的位置参数。
max函数语法
max(iterable, *[, key, default]) |
参数
- iterable 可迭代对象
- arg1, arg2 多个位置参数
示例代码
传入可迭代对象
max([4, 6, 1, 3]) |
四个例子,我分别传入了列表,元组,字符串,集合,注意,他们必须都是非空的,否则就会报ValueError错误。
传入多个位置参数
max(4, 6, 7, 38) |
这种用法并不多见,如果有多个实参,通常人们会将其放入列表或者元组中传入max函数。
python内置函数map详解
map函数的功能作用
python内置函数map的原型是
map(function, iterable, ...) |
map函数返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器,map函数的第一个参数可以是lambda函数也可以是自定一函数,第二个参数是可变参数,可以传入多个可迭代对象。
map函数语法
map(function, iterable, ...) |
参数
- function 函数,可以是lambda函数,也可以是自定义函数
- iterable 可迭代对象,当有多个可迭代对象时,最短的可迭代对象耗尽则整个迭代就结束。
返回值
迭代器
示例代码
function 参数是lambda函数
lst1 = [1, 2, 3] |
执行结果
<map object at 0x105664358> |
传入多个可迭代对象
lst1 = [1, 2, 3] |
这段代码里,传入了lst1,lst2两个可迭代对象,在map的内部,会同时遍历他们,从这两个列表里各自取出一个元素作为参数传给lambda函数,最终的效果就是14, 25,3*6, 程序输出结果
<map object at 0x1032f1400> |
传入自定义函数
lst1 = [1, 2, 3] |
几乎与上一段代码一模一样,只是用func函数替代了lambda函数,如果处理逻辑较为复杂,那么使用自定义函数是合理的选择,毕竟lambda函数只适合编写简单的逻辑。
n开头的内置函数
python内置函数next详解
next函数功能作用
python内置函数next通过调用对象的__next__方法从迭代器中取值,当迭代器耗尽又没有为next函数设置default默认值参数,使用next函数将引发StopIteration异常。
next函数语法
next(iterator[, default]) |
参数
- iterator 迭代器
- default 可选参数,当迭代器耗尽时的默认返回值
返回值
迭代器中的元素
示例代码
lst = [1, 2, 3] |
列表lst是可迭代对象,iter函数一个迭代器,next函数作用于迭代器,每一次都从迭代器中取出一个元素。列表里共有3个元素,3次调用next函数后,迭代器已经耗尽,因此第4次调用next函数将引发StopIteration异常。第5次调用next函数时,我为其指定了default参数,如果迭代器耗尽,则返回默认值0。
o开头的内置函数
python内置函数oct详解
oct函数功能作用
python内置函数oct将一个int类型数据转换成前缀为“0o”的八进制字符串,如果传入的对象不是int类型,则必须实现__index__方法返回一个int对象。
oct函数语法
oct(x) |
参数
- x , int类型对象或者实现了__index__方法的对象
返回值
前缀为“0o”的八进制字符串
示例代码
>>> oct(22) |
22的八进制表示方法是0o26。
python内置函数open详解
open函数功能作用
python内置函数open打开文件并返回对应的file object,如果文件不存在则引发FileNotFoundError异常,如果文件存在却不能被打开,则引发OSError异常。open函数是python专门用于读写文件的函数。
open函数语法
open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None) |
参数
- file , path-like object, 可以是表示文件路径的字符串,也可以是件对应的整数类型文件描述符
- mode , 打开文件的模式,参见教程文件读写
- buffering ,缓存方式,参见python 写文件的buffer策略
- encoding , 以哪种编码方式打开文件
- errors, 用于指定如何处理编码和解码错误
- newline 控制 universal newlines 模式如何生效(它仅适用于文本模式)
- closefd 如果 closefd 为 False 且给出的不是文件名而是文件描述符,那么当文件关闭时,底层文件描述符将保持打开状态。如果给出的是文件名,则 closefd 必须为 True (默认值),否则将触发错误
- opener 自定义开启器
返回值
file object
示例代码
以读模式打开文件
f = open('data.txt', 'r', encoding='utf-8') |
以写模式打开文件
f = open("data.txt", 'w', encoding="utf-8") |
打开的文件对象一定要记得在使用结束后调用colse方法关闭文件,否则将引发内存泄漏,使用with 关键字可以避免遗忘关闭文件
with open("data.txt", 'r', encoding="utf-8")as f: |
p开头的内置函数
python内置函数pow详解
pow函数功能作用
python内置函数pow返回一个数的exp次幂,你可以利用pow函数计算一个数的平方,3次方等常见的操作。如果exp是负数,则是计算一个数的倒数。
pow函数语法
pow(base, exp[, mod]) |
参数
- base int 整数
- exp int整数,pow(base, exp) 等价于base**exp
- mod 如果提供了这参数,则先计算先进行幂运算,然后对mod取模,pow(base, exp, mod) 等价于(base**exp) % mod
返回值
base的exp次幂
示例代码
pow(2, 2) |
python内置函数print详解
print函数功能作用
python内置函数print将数据输出到file参数指定的文本流中,参数file默认为sys.stdout 即标准输出。print函数是非常简单但同时又非常重要的内置函数,在编写python代码时可输出变量值验证逻辑是否正确,查找程序bug。
print函数语法
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) |
参数
- *objects 可变参数,可以传入多个对象用于输出打印
- sep 多个对象输出在一行,中间使用sep进行分割
- end print函数在一次调用后输出打印以end结尾,默认是以\n结尾,因此一次print会输出一行数据
- file, 指定print会将*objects输出到哪里,默认输出到标准输出,也可以输出到文件中
- flush 如果为True,则不会进行缓存,而是强制刷新,如果为False,是否缓存取决于file参数传入的对象
返回值
无
示例对象
输出多个对象使用逗号分隔
print(2, 3, 4, sep=',') |
输出数据以|结尾
print("ok", end="|") |
执行一次print函数,输出的内容以| 结尾,连续两次调用print,输出的内容会在同一行
ok|ok| |
print函数将数据输出到文件中
f = open('print.log', 'w') |
违反以往的经验,你在终端里看不到任何输出,打开print.log可以看到print函数的输出内容。
r开头的内置函数
python内置函数range详解
range函数功能作用
python内置函数range以指定步长从start到stop产生一个整数序列,start默认为0,step默认为1。在python2中range函数返回的是列表,python3开始range函数返回的是一个可迭代对象。range函数多用于for循环和列表推导式。
range函数语法
class range(stop) |
参数
- start int类型,序列起始值
- stop int类型,序列结束值
- step int类型,步长,可以为负数
产生的序列为左闭右开[start, stop),序列的最大值一定小于stop。
示例代码
range函数仅传stop
type(range(10)) |
range函数的返回值是range类型,是可迭代对象,使用list函数可将其转为列表,程序仅指定了stop,start默认为0, step 默认为1。
range函数指定start和stop
list(range(1, 5)) |
step默认为1,产生的序列范围是[1, 5),左闭右开,序列最大值小于stop。为什么range所产生的序列的最大值小于stop呢,这里的原因与列表切片操作不包含结束索引是相同的。
range函数产生序列不包含stop,有利于理解程序的行为,比如range(5)产生的序列是0,1,2,3,4, 序列从0开始,到4结束,一共5个数值,刚好于range传入的stop参数相呼应,你能一眼看出range函数产生序列的长度。但如果包含了stop,range(5) 产生的序列是从0到5,序列长度就是6,这样极容易产生误解和混乱。如果range(5) 产生的序列是从1到5,包含了5同时长度也是5,似乎也说得通,但编程语言的索引都是从0开始的,在实践中,我们产生从0开始的序列比产生从1开始的序列更加有用。
在指定start和 stop的情况下,range函数产生序列的长度正好是stop - start。
range函数指定step
list(range(1, 10, 2)) |
python内置函数repr详解
repr函数功能作用
python内置函数repr返回对象的可打印形式字符串。如果对象实现了__repr__()方法,repr函数则调用对象的__repr__()得到返回值。
repr函数语法
repr(object) |
参数
- object 对象
返回值
对象的可打印形式字符串
示例代码
repr函数返回类和对象的可打印字符串形式。
class A(): |
对象实现了__repr__()方法
class A(): |
程序输出
<class '__main__.A'> |
python内置函数reversed详解
reversed函数功能作用
python内置函数reversed返回一个反向的迭代器,可用于反向遍历列表,元组,字符串,reversed函数要求传入的实参必须实现__reversed__()方法或者或者是支持该序列协议(具有从 0 开始的整数类型参数的 len() 方法和 getitem() 方法)
reversed函数语法
reversed(seq) |
参数
- seq 序列对象
返回值
反向的迭代器
示例代码
lst = [1, 2, 3, 4, 5] |
程序输出结果
5 |
python内置函数round详解
round函数功能作用
python内置函数round返回 number 舍入到小数点后 ndigits 位精度的值,通常用于float类型数据,保留指定位数。不过由于大多数十进制小数实际上都不能以浮点数精确地表示,因此round函数的返回值有时并不能符合预期,比如round(2.675, 2) 返回的是2.67, 而非2.68。
如果 ndigits 被省略或为 None,则返回最接近输入值的整数。
round函数语法
round(number[, ndigits]) |
参数
- number 数字类型
- ndigits 保留精度位数
返回值
数字类型
示例代码
round(2.675, 2) |
s开头的内置函数
python内置函数set详解
set函数功能作用
python内置函数set返回一个新的集合,它是内置类型,函数可以传入列表,字符串,集合,或其他可迭代对象。
set函数语法
class set([iterable]) |
参数
- iterable 可迭代对象
返回值
集合
示例代码
set([1, 3, 4]) |
python内置函数setattr详解
setattr函数详解
python内置函数setattr与getattr函数相对应,可以为一个对象的某个属性设置属性值。setattr函数极大的扩展了python面向对象的可操作性,使之更加的灵活。
setattr函数语法
setattr(object, name, value) |
参数
- object 对象
- name 字符串,属性名称
- value 属性值
示例代码
class Dog(): |
通过setattr方法为dog对象增加了age属性,在代码设计时,可以用这种方法为对象临时增加一些属性。
python内置函数slice详解
slice函数功能作用
python内置函数slice返回一个 slice 对象,代表range(start, stop, step) 指定索引集的切片,slice函数必须配合range来使用。
slice函数语法
class slice(stop) |
参数
- start 切片开始索引
- stop 切片结束索引
- step 步长
示例代码
cut = slice(5) |
程序输出结果
0 |
python内置函数sorted详解
sorted函数功能作用
内置函数sorted根据 iterable 中的项返回一个新的有序的列表,它不仅可以对列表进行排序,对其他的可迭代对象也能排序,因此相比于列表的sort方法有更广的适用范围。
sorted函数语法
sorted(iterable, key=None, reverse=False) |
参数
- iterable 可迭代对象
- key 如果为None,则比较元素大小,key可以是一个函数,函数从每个元素中提取用于比较的键
- reverse 默认为False,表示从小到大进行排序
返回值
列表
示例代码
比较元素大小
lst = [5, 2, 1, 3] |
如果列表里的元素无法直接比较大小,可以使用key参数从每个元素中提取用于比较大小的key。
lst = [ |
列表里存储的是字典,两个字典之间不能直接比较大小,想要对他们进行排序,就必须指定两个字典之间比较大小时使用哪个具体的值,我在代码里指定使用score来代表字典进行大小比较。程序输出结果
{'name': '小红', 'score': 90} |
python内置函数staticmethod详解
staticmethod函数功能作用
内置函数staticmethod将类的普通方法转为静态方法,静态方法不会接收隐式的第一个参数,声明静态方法请使用staticmethod。
staticmethod函数语法
示例代码
class Bird(): |
静态方法可以直接通过类来调用。
python内置函数str详解
str函数功能作用
内置函数str将其他类型的数据转换为字符串,如果传入的bytes类型数据,可以通过encoding来指定编码。
str函数语法
class str(object='') |
参数
- object 几乎可以是任意类型
- encoding 当object是bytes类型时可以通过encoding指定编码,默认是utf-8
- errors 解码失败时如何响应
errors有6个可选值
- strict - 默认响应,失败时引发UnicodeDecodeError异常
- ignore - 从结果中忽略不可编码的 Unicode
- replace - 将不可编码的 Unicode 替换为问号
- xmlcharrefreplace - 插入 XML 字符引用而不是不可编码的 Unicode
- backslashreplace - 插入一个\uNNNNespace 序列而不是不可编码的 Unicode
- namereplace - 插入\N{…}转义序列而不是不可编码的 Unicode
返回值
字符串
示例代码
str(1) |
python内置函数sum详解
sum函数功能作用
内置函数sum从start开始从左向右对可迭代对象的项进行求和并返回总和,sum函数通常用于计算列表或元组的各项元素总和,start默认为0
sum函数语法
sum(iterable, start=0) |
参数
- iterable 可迭代对象
- start 求和计算的起始索引
返回值
可迭代对象各项元素和
示例代码
sum([]) |
python内置函数super详解
super函数详解
内置函数super多用于面向对象编程super函数返回一个代理对象,将方法调用委托给当前类的父类,可用于调用父类已经实现的方法。
super函数语法
super() -> same as super(__class__, <first argument>) |
super函数有4种用法,我目前只参悟出了第3种用法,平时也只用到super(type, obj) 这种语法。
示例代码
class Animal(): |
t开头的内置函数
python内置函数tuple详解
tuple函数功能作用
虽然称tuple为函数,但它实质上是一个不可变序列类型,从表面上看,它能将可迭代对象转成元组,例如列表,range函数返回值。
tuple函数语法
class tuple([iterable]) |
参数
- iterable 可迭代对象
返回值
元组
示例代码
tuple([1, 2, 4]) |
python内置函数type详解
type函数功能作用
内置函数type可以返回一个对象的类型,通常与 object.class 所返回的对象相同。type是一个看起来不起眼但是功能和作用十分强大的函数,由于python的变量不需要声明类型,因此在编程时可以通过type函数获取变量的类型,这对于理解程序是十分关键的。
type函数语法
class type(object) |
type函数不仅可以返回对象的类型,还可以构建新的类,这部分功能可以参考我的另一篇文章《一切皆对象》。
参数
- object 对象
示例代码
type([1, 2]) |
通过type函数获得int的类型,竟然是type,type的类型也是type,这就是python的面向对象比较神奇也比较难理解的地方。
v开头的内置函数
python内置函数vars详解
vars函数功能作用
内置函数vars可以返回对象的__dict__ 属性,对象可以是模块,类,示例,只要对象有__dict__ 属性,vars就可以返回。
vars函数语法
vars([object]) |
参数
- object 有__dict__ 属性的对象
返回值
对象的__dict__ 属性
示例代码
class Cat(): |
示例的属性保存在实例的__dict__ 字典中,vars函数返回cat示例的__dict__属性。
z开头的内置函数
python内置函数zip详解
zip函数功能作用
内置函数zip可以在多个迭代器上并行迭代,从每一个迭代器上返回一个元素组成一个元组,如果迭代器的长度不统一,那么就以最短的那个为准。
zip函数语法
zip(*iterables) |
参数
- iterables 可迭代对象
返回值
可迭代对象
示例代码
lst1 = [1, 2, 3, 4, 5, 6] |
zip函数传入的可迭代对象可以是多个,例子里传入两个,你可以传入更多,两个列表的长度不同,当lst2遍历结束时,zip函数也随之结束,因此字典info的大小与lst2的大小相同。