pytho内置函数大全
最后更新于:2022-04-01 23:52:47
[TOC]
# abs() 函数
> abs() 函数返回数字的绝对值。
~~~
abs(-45) : 45
abs(100.12) : 100.12
abs(119L) : 119
~~~
# divmod() 函数
> divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
```
>>>divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(1+2j,1+0.5j)
((1+0j), 1.5j)
```
# input() 函数
```
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
Python2.x 中 input() 相等于eval(raw\_input(prompt)),用来获取控制台的输入。
raw\_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
```
# open() 函数
> open() 函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
# staticmethod() 函数
> staticmethod 返回函数的静态方法。
> 该方法不强制要求传递参数,如下声明一个静态方法:
~~~
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
~~~
以上实例声明了静态方法 f,类可以不用实例化就可以调用该方法 C.f(),当然也可以实例化后调用 C().f()。
# all() 函数
> all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
> 元素除了是 0、空、FALSE 外都算 TRUE。
```
>>>all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0 True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 False
>>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素 False
>>> all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0 True
>>> all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素 False
>>> all((0, 1, 2, 3)) # 元组tuple,存在一个为0的元素 False
>>> all([]) # 空列表 True
>>> all(()) # 空元组 True
```
# enumerate() 函数
> enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
Python 2.3. 以上版本可用,2.6 添加 start 参数。
~~~
enumerate(sequence, [start=0])
~~~
* sequence -- 一个序列、迭代器或其他支持迭代对象。
* start -- 下标起始位置。
```
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
```
# int() 函数
> int() 函数用于将一个字符串或数字转换为整型。
~~~
class int(x, base=10)
~~~
* x -- 字符串或数字。
* base -- 进制数,默认十进制。
# ord() 函数
> ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
# str() 函数
> str() 函数将对象转化为适于人阅读的形式。
# any() 函数
> any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
# eval() 函数
> eval() 函数用来执行一个字符串表达式,并返回表达式的值。
~~~
eval(expression[, globals[, locals]])
~~~
* expression -- 表达式。
* globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
* locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
```
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
```
# isinstance() 函数
> isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
```
isinstance() 与 type() 区别:
* type() 不会认为子类是一种父类类型,不考虑继承关系。
* isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
```
# pow() 函数
> **pow()**方法返回 xy(x的y次方) 的值。
以下是 math 模块 pow() 方法的语法:
~~~
import math
math.pow( x, y )
~~~
内置的 pow() 方法
~~~
pow(x, y[, z])
~~~
函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
**注意:**pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
# sum() 函数
> **sum()**方法对系列进行求和计算。
以下是 sum() 方法的语法:
~~~
sum(iterable[, start])
~~~
* iterable -- 可迭代对象,如:列表、元组、集合。
* start -- 指定相加的参数,如果没有设置这个值,默认为0。
```
>>>sum([0,1,2])
3
>>> sum((2, 3, 4), 1 # 元组计算总和后再加 1
10
```
# basestring() 函数
> **basestring()**方法是 str 和 unicode 的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为 str 或者 unicode 的实例,isinstance(obj, basestring) 等价于 isinstance(obj, (str, unicode))。
```
>>>isinstance("Hello world", str)
True
>>>isinstance("Hello world", basestring)
True
```
# execfile() 函数
> execfile() 函数可以用来执行一个文件。
~~~
execfile(filename[, globals[, locals]])
~~~
* filename -- 文件名。
* globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
* locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
# issubclass() 函数
> **issubclass()**方法用于判断参数 class 是否是类型参数 classinfo 的子类。
~~~
issubclass(class, classinfo)
~~~
* class -- 类。
* classinfo -- 类。
如果 class 是 classinfo 的子类返回 True,否则返回 False。
# print() 函数
> **print()**方法用于打印输出,最常见的一个函数。
~~~
print(*objects, sep=' ', end='\n', file=sys.stdout)
~~~
* objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
* sep -- 用来间隔多个对象,默认值是一个空格。
* end -- 用来设定以什么结尾。默认值是换行符 \\n,我们可以换成其他字符串。
* file -- 要写入的文件对象。
# super() 函数
> **super()**函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
# bin() 函数
> **bin()**返回一个整数 int 或者长整数 long int 的二进制表示。
# file() 函数
> **file()**函数用于创建一个 file 对象,它有一个别名叫[open()](http://www.runoob.com/python/pytho-func-open),更形象一些,它们是内置函数。参数是以字符串的形式传递的。
~~~
file(name[, mode[, buffering]])
~~~
* name -- 文件名
* mode -- 打开模式
* buffering -- 0 表示不缓冲,如果为 1 表示进行行缓冲,大于 1 为缓冲区大小。
# iter() 函数
> **iter()**函数用来生成迭代器。
~~~
iter(object[, sentinel])
~~~
* object -- 支持迭代的集合对象。
* sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的\_\_next\_\_()方法时,都会调用 object。
# property() 函数
> **property()**函数的作用是在新式类中返回属性值。
~~~
class property([fget[, fset[, fdel[, doc]]]])
~~~
* fget -- 获取属性值的函数
* fset -- 设置属性值的函数
* fdel -- 删除属性值函数
* doc -- 属性描述信息
# Tuple(元组) tuple()方法
Python 元组 tuple() 函数将列表转换为元组。
~~~
tuple( seq )
~~~
* seq -- 要转换为元组的序列。
# bool() 函数
> **bool()**函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
bool 是 int 的子类。
~~~
class bool([x])
~~~
* x -- 要进行转换的参数。
# filter() 函数
> **filter()**函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
~~~
filter(function, iterable)
~~~
* function -- 判断函数。
* iterable -- 可迭代对象。
# len()方法
> Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
~~~
len( s )
~~~
* s -- 对象。
# range() 函数用法
> range() 函数可创建一个整数列表,一般用在 for 循环中。
~~~
range(start, stop[, step])
~~~
* start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
* stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是\[0, 1, 2, 3, 4\]没有5
* step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
# type() 函数
> type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
isinstance() 与 type() 区别:
* type() 不会认为子类是一种父类类型,不考虑继承关系。
* isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
~~~
type(object)
type(name, bases, dict)
~~~
* name -- 类的名称。
* bases -- 基类的元组。
* dict -- 字典,类内定义的命名空间变量。
# bytearray() 函数
> **bytearray()**方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
~~~
class bytearray([source[, encoding[, errors]]])
~~~
* 如果 source 为整数,则返回一个长度为 source 的初始化数组;
* 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
* 如果 source 为可迭代类型,则元素必须为\[0 ,255\] 中的整数;
* 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
* 如果没有输入任何参数,默认就是初始化数组为0个元素。
# float() 函数
> **float()**函数用于将整数和字符串转换成浮点数。
# list()方法
> list() 方法用于将元组转换为列表。
**注:**元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
~~~
list( tup )
~~~
* tup -- 要转换为列表的元组。
# raw_input() 函数
raw\_input() 用来获取控制台的输入。
raw\_input() 将所有输入作为字符串看待,返回字符串类型。
> 注意:input() 和 raw\_input() 这两个函数均能接收 字符串 ,但 raw\_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
>
> 除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw\_input() 来与用户交互。
>
> 注意:python3 里 input() 默认接收到的是 str 类型。
# unichr() 函数
> unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。
# callable() 函数
**callable()**函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。
对于函数、方法、lambda 函式、 类以及实现了\_\_call\_\_方法的类实例, 它都返回 True。
# format 格式化函数
新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。
基本语法是通过{}和:来代替以前的%。
format 函数可以接受不限个参数,位置可以不按顺序。
# locals() 函数
> **locals()**函数会以字典类型返回当前位置的全部局部变量。
对于函数, 方法, lambda 函式, 类, 以及实现了 \_\_call\_\_ 方法的类实例, 它都返回 True。
# reduce()函数
> **reduce()**函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
~~~
reduce(function, iterable[, initializer])
~~~
* function -- 函数,有两个参数
* iterable -- 可迭代对象
* initializer -- 可选,初始参数
# unicode()
';