数字是由数字字面值或内置函数与运算符的结果来创建的。 不带修饰的整数字面值(包括十六进制、八进制和二进制数)会生成整数。 包含小数点或幂运算符的数字字面值会生成浮点数。 在数字字面值末尾加上 'j'
或 'J'
会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚部的复数。
Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,”较窄”类型的操作数会拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同比较这些数字的精确值一样。2
构造函数 int()、 float() 和 complex() 可以用来构造特定类型的数字。
所有数字类型(复数除外)都支持下列运算:
运算 |
结果: |
备注 |
完整文档 |
|
x 和 y 的和 |
||
|
x 和 y 的差 |
||
|
x 和 y 的乘积 |
||
|
x 和 y 的商 |
||
|
x 和 y 的商数 |
(1) |
|
|
|
(2) |
|
|
x 取反 |
||
|
x 不变 |
||
|
x 的绝对值或大小 |
abs() |
|
|
将 x 转换为整数 |
(3)(6) |
int() |
|
将 x 转换为浮点数 |
(4)(6) |
float() |
|
一个带有实部 re 和虚部 im 的复数。im 默认为0。 |
(6) |
complex() |
|
复数 c 的共轭 |
||
|
|
(2) |
divmod() |
|
x 的 y 次幂 |
(5) |
pow() |
|
x 的 y 次幂 |
(5) |
注释:
- 也称为整数除法。 结果值是一个整数,但结果的类型不一定是 int。 运算结果总是向负无穷的方向舍入:
1//2
为0
,(-1)//2
为-1
,1//(-2)
为-1
而(-1)//(-2)
为0
。 - 不可用于复数。 而应在适当条件下使用 abs() 转换为浮点数。
- Conversion from float to int truncates, discarding the fractional part. See functions math.floor() and math.ceil() for alternative conversions.
- float 也接受字符串 “nan” 和附带可选前缀 “+” 或 “-” 的 “inf” 分别表示非数字 (NaN) 以及正或负无穷。
- Python 将
pow(0, 0)
和0 ** 0
定义为1
,这是编程语言的普遍做法。 - 接受的数字字面值包括数码
0
到9
或任何等效的 Unicode 字符(具有Nd
特征属性的代码点)。
所有 numbers.Real 类型 (int 和 float) 还包括下列运算:
运算 |
结果: |
math.trunc(x) |
x 截断为 Integral |
round(x[, n]) |
x 舍入到 n 位小数,半数值会舍入到偶数。 如果省略 n,则默认为 0。 |
math.floor(x) |
x 的最大 Integral |
math.ceil(x) |
>= x 的最小 Integral |
有关更多的数字运算请参阅 math 和 cmath 模块。
整数类型的按位运算
按位运算只对整数有意义。 计算按位运算的结果,就相当于使用无穷多个二进制符号位对二的补码执行操作。
二进制按位运算的优先级全都低于数字运算,但又高于比较运算;一元运算 ~
具有与其他一元算术运算 (+
and -
) 相同的优先级。
此表格是以优先级升序排序的按位运算列表:
运算 |
结果: |
备注 |
|
x 和 y 按位 或 |
(4) |
|
x 和 y 按位 异或 |
(4) |
|
x 和 y 按位 与 |
(4) |
|
x 左移 n 位 |
(1)(2) |
|
x 右移 n 位 |
(1)(3) |
|
x 逐位取反 |
注释:
- 负的移位数是非法的,会导致引发 ValueError。
- 左移 n 位等价于乘以
pow(2, n)
。 - 右移 n 位等价于除以
pow(2, n)
,作向下取整除法。 - 使用带有至少一个额外符号扩展位的有限个二进制补码表示(有效位宽度为
1 + max(x.bit_length(), y.bit_length())
或以上)执行这些计算就足以获得相当于有无数个符号位时的同样结果
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com