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

参考:

Python 基础 - 0 前言

Built-in Types


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 对象,保存输入两个数值之间除法操作得到的整数商和余数

    这里写图片描述

  • 求取 xy 次方有两种方式,使用方法 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 异常

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 Python 代码,定义了包括 int、union、boolfloat 类型的数据格式: ```python import struct # 定义数据格式 fmt = 'i?f' # 打包数据 data = struct.pack(fmt, 123, True, 3.14) # 解包数据 unpacked_data = struct.unpack(fmt, data) print(data) # b'{\x00\x00\x00\x01\x9d\xf0\x1b?' print(unpacked_data) # (123, True, 3.140000104904175) ``` 在上面的代码,我们使用 `struct` 模块定义了一个数据格式 `fmt`,其包含一个整数、一个布尔值和一个浮点数。然后,我们使用 `struct.pack()` 函数将数据打包为二进制格式,并使用 `struct.unpack()` 函数将二进制数据解包为 Python 对象。最后,我们打印出二进制数据和解包后的数据。 你可以根据需要修改格式字符串 `fmt`,以包含不同类型的数据。例如,如果需要添加一个联合类型,可以使用 `?` 表示布尔值,`h` 表示短整型,`H` 表示无符号短整型,`l` 表示长整型,`L` 表示无符号长整型,`f` 表示单精度浮点数,`d` 表示双精度浮点数。例如,以下是一个包含联合类型的数据格式: ```python import struct # 定义数据格式 fmt = 'i?HLf' # 打包数据 data = struct.pack(fmt, 123, True, 456, 789, 3.14) # 解包数据 unpacked_data = struct.unpack(fmt, data) print(data) # b'{\x00\x00\x00\x01\x01\x00\x01\xc8\x03\x15\x00\x9d\xf0\x1b?' print(unpacked_data) # (123, True, 456, 789, 3.140000104904175) ``` 在上面的代码,我们定义了一个包含整数、布尔值、无符号短整型、无符号长整型和单精度浮点数的数据格式。然后我们使用 `struct.pack()` 函数将数据打包为二进制格式,并使用 `struct.unpack()` 函数将二进制数据解包为 Python 对象,并打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值