参考:
Python
数值类型包括整型(integer
),浮点型(floating point number
)和复数(complex number
),并且,布尔型(boolean
)是整型的子类
其中,最常用的数值类型包括整型,浮点型和布尔型,下面介绍它们的定义和使用方法
主要内容:
- 数值类型转换
- 整型(
int
),浮点型(float
)和布尔型(bool
)的通用操作 - 整型(
int
),浮点型(float
)的通用操作 - 整型(
int
)位运算
数值类型转换
Python
支持整型(int
),浮点型(float
)和布尔型(bool
)的转换
-
精度低的类型可以自动转换为精度高的类型,所以,布尔型(
bool
)可以转换为整型(int
),整型(int
)可以转换为浮点型(float
)。示例如下: -
对于精度高的类型转换为低精度的类型,可能会损失精度。示例如下:
整型(
int
),浮点型(
float
)和布尔型(
bool
)的通用操作
int
),浮点型(
float
)和布尔型(
bool
)的通用操作
整型(int
),浮点型(float
)和布尔型(bool
)均支持以下操作(其操作方法按优先级升序排列,数值运算(numeric operation
)优先级高于比较操作(comparison operation
))
-
首先是基本四则运算符:加(
+
),减(-
),乘(*
)和除(/
)操作Note:布尔型类型的运算(除了除法)得到的是整型结果
Note:除法(
/
)操作得到的商是浮点型(float
) -
操作符(
//
)同样执行除法操作,不同的是,它得到的是商的整数部分;操作符(%
)得到的是除法操作的余数 -
方法
abs()
得到的是输入数值的绝对值 -
方法
divmod()
得到的是一个tuple
对象,保存输入两个数值之间除法操作得到的整数商和余数 -
求取
x
的y
次方有两种方式,使用方法pow()
,或者使用操作符**
整型(int),浮点型(float)的通用操作
整型(int
),浮点型(float
)还支持以下操作
方法 round()
保留了小数精度位数,默认是保留 0
位小数精度,即仅保留整数
另外 3
个方法需要先导入 math
库
方法 math.trunc
需要输入一个数值,返回和该数值最接近的趋向于 0
的整数
方法 math.floor
返回小于等于该数值的整数;方法 math.ceil
返回大于等于该数值的整数
整型(
int
)位运算
int
)位运算
参考:Python位运算符
位运算如下所示(按优先级升序排列):
Note:位运算符的优先级均低于数值运算符,但是高于比较运算符;其中,一元操作符(~
)的优先级和其它一元操作符一致(比如,正 +
和 负 -
)
设变量 x = 13
,其二进制格式为 1101
, 变量 y = 7
,其二进制格式为 111
,
首先是或操作,使用符号 |
,所以 x | y = 1101 | 111 = 1111 = 15
接着是异或操作,使用符号 ^
,所以 x ^ y = 1101 | 111 = 1010 = 10
然后是与操作,使用符号 &
,所以 x & y = 1101 & 111 = 101 = 5
最后是按位取反操作,使用符号 ~
,所以 ~x = -x-1 = -14
设 n = 3
运算 x << n
表示将二进制值 x
向左移动 n
位,所以 x << n = 1101 << 3 = 1101000 = 104
同理,运算符 >>
将值 x
向右移动 n
位,所以 x >> n = 1101 >> 3 = 1
Note:位运算返回的仍是整数
Note:移位操作中移动的位数必须是正数,否则会抛出 ValueError
异常