Python内置函数和内置常量

Python内置函数

1、abs(x)

返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。

2、all(iterable)

如果 iterable 的所有元素为真(或迭代器为空),返回 True 。等价于:

def all(iterable):
for element in iterable:
if not element:
return False
return True

3、any(iterable)

如果 iterable 的任一元素为真则返回 True。 如果迭代器为空,返回 False。 等价于:

def any(iterable):
for element in iterable:
if element:
return True
return False

4、ascii(object)和repr(object)

返回包含一个对象的可打印表示形式的字符串。但是 repr() 返回的字符串中非 ASCII 编码的字符,会使用 \x\u 和 \U 来转义。

5、bin(x)、oct()、hex()

bin(x)将一个整数转变为一个前缀为“0b”的二进制字符串。

oct(x)将一个整数转变为一个前缀为“0o”的八进制字符串。

hex(x)将整数转换为以“0x”为前缀的小写十六进制字符串。

6、bool(x)

返回一个布尔值,True 或者 False。如果 x 是假的或者被省略,返回 False;其他情况返回 True。它只有 False 和 True 两个实例

7、breakpoint(*args,**kws)

此函数会在调用时将你陷入调试器中。

8、bytearray([source[encoding[,errors]]])

返回一个新的 bytes 数组。

可选形参 source 可以用不同的方式来初始化数组:

  • 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的);bytearray() 会使用 str.encode() 方法来将 string 转变成 bytes。

  • 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。

  • 如果是一个符合 buffer 接口的对象,该对象的只读 buffer 会用来初始化字节数组。

  • 如果是一个 iterable 可迭代对象,它的元素的范围必须是 0 <= x <256 的整数,它会被用作数组的初始内容。

如果没有实参,则创建大小为 0 的数组。

9、bytes([source[encoding[,errors]]])

返回一个新的“bytes”对象, 是一个不可变序列,包含范围为 0 <= x < 256的整数。

10、callable(object)

如果参数 object 是可调用的就返回 True,否则返回 False。 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 将肯定不会成功。 请注意类是可调用的(调用类将返回一个新的实例);如果实例所属的类有 __call__() 则它就是可调用的。

11、chr(i)和ord(i)

返回 Unicode 码位为整数 i 的字符的字符串格式。例如,chr(97) 返回字符串 'a'chr(8364) 返回字符串 '€'。这是 ord() 的逆函数。

实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。

12、classmethod(function)和staticmethod(function)

classmethod(function)把一个方法封装成类方法。一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。

staticmethod(function)将方法转换为静态方法。静态方法不会接收隐式的第一个参数。

类方法和静态方法都既可以类调用也可以实例调用。

可以使用装饰器(修饰器==decorator)的方式构造。@classmethod和@staticmethod

class C:
@classmethod
def f(self, arg1, arg2, ...): ...
class C:
@staticmethod
def f(arg1, arg2, ...): ...

13、comlile(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-1)

将 source 编译成代码或 AST 对象。代码对象可以被 exec() 或 eval() 执行。source 可以是常规的字符串、字节字符串,或者 AST 对象。参见 ast模块的文档了解如何使用 AST 对象。

14、complex([real[, imag]])

返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。第二个形参不能是字符串。每个实参都可以是任意的数值类型(包括复数)。如果省略了 imag,则默认值为零,构造函数会像 int 和 float 一样进行数值转换。如果两个实参都省略,则返回 0j

15、delattr()、setattr()和getattr()、hasattr()

delattr(object,name)实参是一个对象和一个字符串。该字符串必须是对象的某个属性。如果对象允许,该函数将删除指定的属性。例如 delattr(x, 'foobar') 等价于 del x.foobar 。

setattr(object,name,values)此函数与 getattr() 两相对应。 其参数为一个对象、一个字符串和一个任意值。 字符串指定一个现有属性或者新增属性。 函数会将值赋给该属性,只要对象允许这种操作。 例如,setattr(x, 'foobar', 123) 等价于 x.foobar = 123

getattr(object,name[,default])返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之一,则返回该属性的值。例如, getattr(x, 'foobar') 等同于 x.foobar。如果指定的属性不存在,且提供了 default 值,则返回它,否则触发 AttributeError

hasattr(object,name)判断一个对象是否存在某个属性,存在返回True。

16、dict()、list()、set()、tuple()和collections模块

dict(**kwarg)

dict(mapping,**kwarg)

dict(iterable,**kwarg)

返回一个新的字典

list([iterable])返回可变序列

set([iterable])返回一个集合

tuple([iterable])返回不可变序列

collections模块提供了很多有用的集合类

17、dir([object])和help([object])

dir()如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。

help()启动内置的帮助系统(此函数主要在交互式中使用)。如果没有实参,解释器控制台里会启动交互式帮助系统。如果实参是一个字符串,则在模块、函数、类、方法、关键字或文档主题中搜索该字符串,并在控制台上打印帮助信息。如果实参是其他任意对象,则会生成该对象的帮助页。

18、divmod(a,b)

它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下, q * b + a % b 和 a基本相等;如果 a % b 非零,它的符号和 b 一样,并且 0 <= abs(a % b) <abs(b) 。

19、enumerate(iterable,start=0)

返回一个枚举对象。

20、eval()和exec()

都是执行python代码。

eval(expression[,globals[,locals]])实参是一个字符串,以及可选的 globals 和 locals。globals 实参必须是一个字典。locals 可以是任何映射对象。

exec(object[,globals[,locals]])这个函数支持动态执行 Python 代码。object 必须是字符串或者代码对象。

21、filter()和map()

filter(function,iterable)用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。iterable 可以是一个序列,一个支持迭代的容器,或一个迭代器。如果 function 是 None ,则会假设它是一个身份函数,即 iterable 中所有返回假的元素会被移除。

map(funtion,iterable,...)返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。 如果传入了额外的 iterable 参数,function 必须接受相同个数的实参并被应用于从所有可迭代对象中并行获取的项。 当有多个可迭代对象时,最短的可迭代对象耗尽则整个迭代就将结束。

22、float()、int()

float(x)返回从数字或字符串 x 生成的浮点数。

int([x])或int(x,base=10)返回一个使用数字或字符串 x 生成的整数对象,或者没有实参的时候返回 0

23、format(value[,format_spec])

将 value 转换为 format_spec 控制的“格式化”表示。

24、frozenset([iterable])

返回一个新的 frozenset 对象,它包含可选参数 iterable 中的元素。

25、globals()和locals()

globals()返回表示当前全局符号表的字典。

locals()更新并返回表示当前本地符号表的字典。 在函数代码块但不是类代码块中调用 locals() 时将返回*变量。请注意在模块层级上,locals() 和 globals() 是同一个字典。

26、hash(object)

返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。相同大小的数字变量有相同的哈希值(即使它们类型不同,如 1 和 1.0)。

27、id(object)

返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命期不重叠的对象可能具有相同的 id() 值。

28、input([prompt])和print()

input([prompt])如果存在 prompt 实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发 EOFError

print(*object,sep='',end='\n',file=sys.out,flush=False)将 objects 打印到 file 指定的文本流,以 sep 分隔并在末尾加上 end。 sependfile 和 flush 如果存在,它们必须以关键字参数的形式给出。输出是否被缓存通常决定于 file,但如果 flush 关键字参数为真值,流会被强制刷新。

29、isinstance()和type()

isinstance(objectclassinfo)如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回 True。 如果 object 不是给定类型的对象,函数将总是返回 False。 如果 classinfo 是类型对象元组(或由其他此类元组递归组成的元组),那么如果 object 是其中任何一个类型的实例就返回 True。 如果 classinfo 既不是类型,也不是类型元组或类型元组的元组,则将引发 TypeError 异常。

type(object)或type(name,bases,dict)

传入一个参数时,返回 object 的类型。 返回值是一个 type 对象,通常与 object.__class__ 所返回的对象相同。

推荐使用 isinstance() 内置函数来检测对象的类型,因为它会考虑子类的情况。

传入三个参数时,返回一个新的 type 对象。 这在本质上是 class 语句的一种动态形式。 name 字符串即类名并且会成为 __name__ 属性;bases 元组列出基类并且会成为 __bases__ 属性;而 dict 字典为包含类主体定义的命名空间并且会被复制到一个标准字典成为 __dict__ 属性。

30、issubclass(class,classinfo)

如果 class 是 classinfo 的 (直接、间接或 虚拟) 子类则返回 True。 类会被视作其自身的子类。 classinfo 也以是类对象的元组,在此情况下 classinfo 中的每个条目都将被检查。 在任何其他情况下,都将引发 TypeError 异常。

31、iter()、next()

iter(object[sentinel])返回一个 iterator 对象。根据是否存在第二个实参,第一个实参的解释是非常不同的。如果没有第二个实参,object 必须是支持迭代协议(有 __iter__() 方法)的集合对象,或必须支持序列协议(有 __getitem__()方法,且数字参数从 0 开始)。如果它不支持这些协议,会触发 TypeError。如果有第二个实参 sentinel,那么 object 必须是可调用的对象。这种情况下生成的迭代器,每次迭代调用它的 __next__() 方法时都会不带实参地调用 object;如果返回的结果是 sentinel 则触发 StopIteration,否则返回调用结果。

next(iterable[,default])通过调用 iterator 的 __next__() 方法获取下一个元素。如果迭代器耗尽,则返回给定的 default,如果没有默认值则触发 StopIteration

32、len(s)

返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。

33、max()、min()、sum()

max()返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。

min()返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。

sum(iterable[,start])从 start 开始自左向右对 iterable 中的项求和并返回总计值。 start 默认为 0。 iterable 的项通常为数字,开始值则不允许为字符串。

34、memoryview(obj)

返回由给定实参创建的“内存视图”对象。

35、object

返回一个没有特征的新对象。object 是所有类的基类。它具有所有 Python 类实例的通用方法。这个函数不接受任何实参。

36、open()

open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None)

打开 file 并返回对应的 file object。如果该文件不能打开,则触发 OSError

file 是一个 path-like object,表示将要打开的文件的路径(绝对路径或者当前工作目录的相对路径),也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而关闭,除非 closefd 被设为 False 。)

字符

含义

'r'

读取(默认)

'w'

写入,并先截断文件

'x'

排它性创建,如果文件已存在则失败

'a'

写入,如果文件存在则在末尾追加

'b'

二进制模式

't'

文本模式(默认)

'+'

更新磁盘文件(读取并写入)

37、pow(x,y[,z])

返回 x 的 y 次幂;如果 z 存在,则对 z 取余(比直接 pow(x, y) % z 计算更高效)。两个参数形式的 pow(x, y) 等价于幂运算符: x**y

参数必须为数值类型。

38、property(fget=Nonefset=Nonefdel=Nonedoc=None)

返回 property 属性。

fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。并且 doc 为属性对象创建文档字符串。可以用来做装饰器@property

39、range(stop)或range(start,stop[,step])

不可变的序列类型

40、reversed(seq)

返回一个反向的 iterator。 seq 必须是一个具有 __reversed__() 方法的对象或者是支持该序列协议(具有从 0 开始的整数类型参数的 __len__() 方法和 __getitem__() 方法)。

41、round(number[,ndigits])

返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。非标准的四舍五入。

42、slice(stop)或slice(start,stop[,step])

返回一个表示由 range(start, stop, step) 所指定索引集的 slice 对象。 其中 start 和 step 参数默认为 None。 切片对象具有仅会返回对应参数值(或其默认值)的只读数据属性 startstop 和 step。 它们没有其他的显式功能;不过它们会被 NumPy 以及其他第三方扩展所使用。 切片对象也会在使用扩展索引语法时被生成。

43、sorted(iterable*key=Nonereverse=False)

根据 iterable 中的项返回一个新的已排序列表。

具有两个可选参数,它们都必须指定为关键字参数。

44、str()

str(object='')

str(object=b''encoding='utf-8'errors='strict')

45、super(type[,object-or-type])

返回一个代理对象,它会将方法调用委托给 type 指定的父类或兄弟类。 这对于访问已在类中被重载的继承方法很有用。 搜索顺序与 getattr() 所使用的相同,只是 type 指定的类型本身会被跳过。

46、vars([object])

返回模块、类、实例或任何其它具有 __dict__ 属性的对象的 __dict__ 属性。不带参数时,vars() 的行为类似 locals()

47、zip(*iterables)

创建一个聚合了来自每个可迭代对象中的元素的迭代器。

返回一个元组的迭代器,其中的第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素。 当所输入可迭代对象中最短的一个被耗尽时,迭代器将停止迭代。 当只有一个可迭代对象参数时,它将返回一个单元组的迭代器。 不带参数时,它将返回一个空迭代器。

48、__import__(nameglobals=Nonelocals=Nonefromlist=()level=0)

此函数会由 import 语句发起调用。

该函数会导入 name 模块,有可能使用给定的 globals 和 locals 来确定如何在包的上下文中解读名称。 fromlist 给出了应该从由 name 指定的模块导入对象或子模块的名称。 标准实现完全不使用其 locals 参数,而仅使用 globals 参数来确定 import 语句的包上下文。

level 指定是使用绝对还是相对导入。 0 (默认值) 意味着仅执行绝对导入。 level 为正数值表示相对于模块调用 __import__() 的目录,将要搜索的父目录层数

内置常量常用:True、False、None、__debug__、NotImplemented、Ellipsis(...)

site模块引入常量:quit(code=None)、exit(code=None)、copyright、credits、license

参考文档:python内置函数

上一篇:Python入门之 Python内置函数


下一篇:Perl的调试方法