数字类型运算-创新互联
python的数字类型分为三种,分别是
整数int
、
浮点数float
和
复数complex
。
- 数字是由数字字面值或内置函数与运算符的结果来创建的, 不带修饰的整数字面值会生成整数。
- 包含小数点或幂运算符的数字字面值会生成浮点数。
- 在数字字面值末尾加上 ‘j’ 或 ‘J’ 会生成虚数(实部为零的复数),可以将其与整数或浮点数相加来得到具有实部和虚部的复数。
混合算术
Python 完全支持混合算术,当一个二元运算符用于不同数字类型的操作数时,具有“较窄” 类型的操作数会被扩展为另一个操作数的类型,整数比浮点数更窄,浮点数又比复数更窄。 混合类型数字之间的比较也使用相同的规则。构造器
int()
、
float()
和
complex()
可被用于生成特定类型的数字。
运算
所有数字类型(复数除外)都支持下列运算,按优先级升序排序, 所有数字运算的优先级都高于比较运算
运算 | 结果 | 注释 |
---|---|---|
x + y
| x 和 y 的和 | |
x - y
| x 和 y 的差 | |
x * y
| x 和 y 的乘积 | |
x / y
| x 和 y 的商 | |
x // y
| x 和 y 的商数 | 也称为整数除法,结果值是一个整数,但结果的类型不一定是 int。运算结果总是向负无穷的方向舍入:
1//2
为
,
(-1)//2
为
-1
,
1//(-2)
为
-1
而
(-1)//(-2)
为
。
|
x % y
| remainder of
x / y
| 不可用于复数,应在适当条件下使用 abs()转换为浮点数 |
-x
| x 取反 | |
+x
| x 不变 | |
abs(x)
| x 的绝对值或大小 | |
int(x)
| 将 x 转换为整数 | 从浮点数转换为整数会被舍入或是像在 C 语言中一样被截断 |
float(x)
| 将 x 转换为浮点数 | float 也接受字符串 “nan” 和附带可选前缀 “+” 或 “-“ 的 “inf” 分别表示非数字 (NaN) 以及正或负无穷 |
complex(re, im)
| 一个带有实部 re 和虚部 im 的复数。 im 默认为0。 | 接受的数字字面值包括数码
到
9
或任何等效的 Unicode 字符(具有
Nd
特征属性的代码点)
|
c.conjugate()
| 复数 c 的共轭 | |
divmod(x, y)
|
(x // y, x % y)
| 不可用于复数 |
pow(x, y)
| x 的 y 次幂 | |
x ** y
| x 的 y 次幂 | Python 将
pow(0, 0)
和
0 ** 0
定义为
1
,这是编程语言的普遍做法
|
- 所有 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 |
整数类型的按位运算
按位运算只对整数有意义,计算按位运算的结果,就相当于使用无穷多个二进制符号位对二的补码执行操作。
二进制按位运算的优先级全都低于数字运算,但又高于比较运算
;一元运算 ~ 具有与其他一元算术运算 (+ and -) 相同的优先级。
运算 | 结果 |
---|---|
x 丨 y
| x 和 y 按位 或 |
x ^ y
| x 和 y 按位 异或 |
x & y
| x 和 y 按位 与 |
x << n
|
x
左移
n
位,等价于不带溢出检测地乘以
pow(2, n)
|
x >> n
|
x
右移
n
位,等价于不带溢出检测地除以
pow(2, n)
|
~x
| x 逐位取反 |
网站标题:数字类型运算-创新互联
当前链接:http://hbruida.cn/article/pesgd.html