数字类型运算

2023-05-13,,

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

逐位取反