Python解释器内置了很多函数和类型,可以随时随地在编程中使用。其实,我们在前面的学习中已经接触过好多内置函数。
这里把它们总结成下面的表格,方便我们学习它们的使用:
说明:
上面这个表格包含的有“内置函数”和“内置类型”,其中的内置类型可以作为函数使用,把其它类型的对象转变为该类型的对象。比如int是一个内置类型,int('123')就是把字符串转换成整数。两者在使用上没有什么区别,官方文档中也是把内置类型当做内置函数介绍的。
通过ipython,我们可以查看表格中的是函数还是类型。比如:
In [14]: abs?
Signature: abs(x, /)
Docstring: Return the absolute value of the argument.
Type: builtin_function_or_method
In [15]: int?
Init signature: int(self, /, *args, **kwargs)
Docstring:
int(x=0) -> integer
int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments
are given. If x is a number, return x.__int__(). For floating point
numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string,
bytes, or bytearray instance representing an integer literal in the
given base. The literal can be preceded by '+' or '-' and be surrounded
by whitespace. The base defaults to 10\. Valid bases are 0 and 2-36.
Base 0 means to interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4
Type: type
Subclasses: bool, IntEnum, IntFlag, _NamedIntConstant
在ipython里面通过问号?来查看其对应的说明,其中的Type就是它的类型,可以看到abs是一个内置函数builtin_function_or_method,而int是一个类型type。
我们把这些内置函数(类型)分成几类进行介绍。
数值型操作
abs(x)
求x的绝对值。x可以是整数或浮点数,如果是复数则返回它的模。
bin(x)
将一个整数转变为一个前缀为0b的二进制字符串。结果是一个合法的 Python 表达式。如果 x 不是 Python 的 int 对象,那它需要定义 index() 方法返回一个整数。比如:
In [26]: bin(5)
Out[26]: '0b101'
In [27]: bin(-5)
Out[27]: '-0b101'
x 不能是浮点数,否则会报错。
还可以通过format()函数来进行转换:
In [30]: format(5, '#b')
Out[30]: '0b101'
In [31]: format(5, 'b')
Out[31]: '101'
还可以用f-string格式化来转换:
In [32]: f'{5:#b}'
Out[32]: '0b101'
In [33]: f'{5:b}'
Out[33]: '101'
chr(i)
返回 Unicode 码位为整数 i 的字符的字符串格式。例如,chr(97) 返回字符串 ‘a’,chr(20013) 返回字符串 ‘中’。这是 ord() 的逆函数。
实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。
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