文章目录
- 输入输出
- 数学运算
- 类型转换
- 序列操作
- 函数操作
- 其他
- Python 3 所有内置函数
输入输出
-
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
打印输出。print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。 -
input([prompt])
如果存在prompt
实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发EOFError
。
数学运算
-
abs(x)
返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。 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)
。
-
max(iterable, *[, key, default]) / max(arg1, arg2, *args[, key])
返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。 -
min(iterable, *[, key, default]) / min(arg1, arg2, *args[, key])
返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。 -
pow(x, y[, z])
返回x
的y
次幂;如果z
存在,则对z
取余(比直接pow(x, y) % z
计算更高效)。两个参数形式的pow(x, y)
等价于幂运算符:x**y
。 -
round(number[, ndigits])
对浮点数进行四舍五入求值。如果可选参数省略或为None,则返回其输入的最接近的整数。 -
sum(iterable[, start])
对可迭代对象求和。可选参数为指定相加的参数,如果没有设置这个值,默认为0。
类型转换
-
class bool([x])
将给定参数转换为布尔类型,如果没有参数,返回 False。 -
class int([x]) / class int(x, base=10)
返回一个使用数字或字符串x
生成的整数对象,或者没有实参的时候返回0
。如果x
不是数字,或者有base
参数,x
必须是字符串、bytes、表示进制为base
的 整数文字 的bytearray
实例。该文字前可以有+
或-
(中间不能有空格),前后可以有空格。 -
class float([x])
返回从数字或字符串x
生成的浮点数。 -
class str(object='') / class str(object=b'', encoding='utf-8', errors='strict')
返回一个str
版本的object
。 -
bin(x) / oct(x) / hex(x)
将一个十进制数字转化成一个二进制 / 八进制 / 十六进制数字的字符串。 -
chr(i)
返回 Unicode 码位为整数 i 的字符的字符串格式。例如,chr(97)
返回字符串'a'
,chr(8364)
返回字符串'€'
。这是ord()
的逆函数。 -
ord()
对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。例如ord('a')
返回整数97
,ord('€')
(欧元符号)返回8364
。这是chr()
的逆函数。 -
class list([iterable])
将元组或字符串转换为列表。 -
tuple([iterable])
将列表转换为元组。 -
class dict(**kwarg) / class dict(mapping, **kwarg) / class dict(iterable, **kwarg)
创建一个新的字典。 -
class set([iterable])
创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 iter(object[, sentinel])
返回一个iterator
对象。根据是否存在第二个实参,对第一个实参的解释是非常不同的。
- 如果没有第二个实参,object 必须是支持迭代协议(有 iter() 方法)的集合对象,或必须支持序列协议(有 getitem() 方法,且数字参数从 0 开始)。如果它不支持这些协议,会触发 TypeError。
- 如果有第二个实参 sentinel,那么 object 必须是可调用的对象。这种情况下生成的迭代器,每次迭代调用它的 next() 方法时都会不带实参地调用 object;如果返回的结果是 sentinel 则触发 StopIteration,否则返回调用结果。
序列操作
all(iterable)
如果iterable
的所有元素为真(或迭代器为空),返回True
。any(iterable)
如果iterable
的任一元素为真则返回True
。如果迭代器为空,返回False
。len(s)
返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。sorted(iterable, *, key=None, reverse=False)
对所有可迭代的对象进行排序操作,返回重新排序的列表。reversed(seq)
返回一个反转的迭代器。class slice(stop) / class slice(start, stop[, step])
返回一个切片对象,主要用在切片操作函数里的参数传递。zip(*iterables)
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*
号操作符,可以将元组解压为列表。range(stop) / range(start, stop[, step])
返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
- Python3
list()
函数是对象迭代器,可以把range()
返回的可迭代对象转为一个列表,返回的变量类型为列表。 - Python2
range()
函数返回的是列表。
enumerate(iterable, start=0)
返回一个枚举对象。iterable
必须是一个序列,或iterator
,或其他支持迭代的对象。enumerate()
返回的迭代器的__next__()
方法返回一个元组,里面包含一个计数值(从start
开始,默认为 0)和通过迭代iterable
获得的值。
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
函数操作
map(function, iterable, ...)
产生一个将function
应用于迭代器中所有元素并返回结果的迭代器。
如果传递了额外的iterable
实参,function
必须接受相同个数的实参,并使用所有迭代器中并行获取的元素。当有多个迭代器时,最短的迭代器耗尽则整个迭代结束。
def square(x):
return x ** 2
list(map(square, [1, 2, 3, 4, 5])) >>> [1, 4, 9, 16, 25]
def lambda(x, y):
return x + y
list(map(lambda, [1, 2, 3, 4, 5], [10, 20, 30])) >>> [11, 22, 33]
filter(function, iterable)
返回iterable
中执行函数function
之后返回真的那些元素,构建一个新的迭代器。
-
iterable
可以是一个序列,一个支持迭代的容器,或一个迭代器。 - 如果
function
是None
,则会假设它是一个身份函数,即iterable
中所有返回假的元素会被移除。 - 请注意,
filter(function, iterable)
相当于一个生成器表达式,当function
不是None
的时候为(item for item in iterable if function(item))
;function
是None
的时候为(item for item in iterable if item)
。
其他
-
exec(object[, globals[, locals]])
这个函数支持动态执行 Python 代码。object
必须是字符串或者代码对象。 isinstance(object, classinfo)
- 如果 object 实参是 classinfo 实参的实例,或者是(直接、间接或 虚拟)子类的实例,则返回 true。
- 如果 object 不是给定类型的对象,函数始终返回 false。
- 如果 classinfo 是对象类型(或多个递归元组)的元组,object 是其中的任何一个的实例则返回 true。
- 如果 classinfo 既不是类型,也不是类型元组或类型的递归元组,那么会触发 TypeError 异常。
type()
-
class type(object)
如果只有第一个参数则返回对象的类型; -
class type(name, bases, dict)
三个参数返回新的类型对象。
isinstance()
与 type()
区别:
-
type()
不会认为子类是一种父类类型,不考虑继承关系。 -
isinstance()
会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()
。
Python 3 所有内置函数
完整的在这里,用到了会继续补充。