Python 基础 - 4 常用数值类型(int,float,bool)操作

Python 基础 - 4 常用数值类型(int,float,bool)操作


Python 数值类型包括整型(integer),浮点型(floating point number)和复数(complex number),并且,布尔型(boolean)是整型的子类

其中,最常用的数值类型包括整型,浮点型和布尔型,下面介绍它们的定义和使用方法


主要内容:

  1. 数值类型转换
  2. 整型(int),浮点型(float)和布尔型(bool)的通用操作
  3. 整型(int),浮点型(float)的通用操作
  4. 整型(int)位运算

数值类型转换

Python 支持整型(int),浮点型(float)和布尔型(bool)的转换

  • 精度低的类型可以自动转换为精度高的类型,所以,布尔型(bool)可以转换为整型(int),整型(int)可以转换为浮点型(float)。示例如下:

     

    这里写图片描述

     

  • 对于精度高的类型转换为低精度的类型,可能会损失精度。示例如下:

     

    这里写图片描述

     


整型(int),浮点型(float)和布尔型(bool)的通用操作

整型(int),浮点型(float)和布尔型(bool)均支持以下操作(其操作方法按优先级升序排列,数值运算(numeric operation)优先级高于比较操作(comparison operation))

 

这里写图片描述

 

  • 首先是基本四则运算符:加(+),减(-),乘(*)和除(/)操作

     

    这里写图片描述

     

    Note:布尔型类型的运算(除了除法)得到的是整型结果

    Note:除法(/)操作得到的商是浮点型(float

  • 操作符(//)同样执行除法操作,不同的是,它得到的是商的整数部分;操作符(%)得到的是除法操作的余数

     

    这里写图片描述

     

  • 方法 abs() 得到的是输入数值的绝对值

     

    这里写图片描述

     

  • 方法 divmod() 得到的是一个 tuple 对象,保存输入两个数值之间除法操作得到的整数商和余数

     

    这里写图片描述

     

  • 求取 x 的 y 次方有两种方式,使用方法 pow(),或者使用操作符 **

     

    这里写图片描述

     


整型(int),浮点型(float)的通用操作

参考:Python round() 函数

整型(int),浮点型(float)还支持以下操作

 

这里写图片描述

 

方法 round() 保留了小数精度位数,默认是保留 0 位小数精度,即仅保留整数

 

这里写图片描述

 

另外 3 个方法需要先导入 math 库

方法 math.trunc 需要输入一个数值,返回和该数值最接近的趋向于 0 的整数

 

这里写图片描述

 

方法 math.floor 返回小于等于该数值的整数;方法 math.ceil 返回大于等于该数值的整数

 

这里写图片描述

 


整型(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 异常

posted @ 2019-01-12 14:09  zhangshh  阅读(1520)  评论(0编辑  收藏  举报