Python数据类型转换实战:byte、int、float与str互转详解

方予
方予
发布时间:2026-10-14 | 2人浏览过
原创

本文详细解析Python中字节类型与整型、浮点型及字符串类型的相互转换方法。通过具体代码实例,演示bytes与str的编码转换、bytes与int的大小端转换、利用struct模块实现byte与float的精确互转,以及str与bytearray的无缝切换,帮助开发者掌握底层数据处理的常用技巧。

bytes与str类型互转

在Python开发中,经常需要处理字节流与各种数据类型的转换。本节首先介绍bytes类型与字符串类型(str)之间的相互转换方法,这是处理网络通信和文件读写时的基础操作。

将字节串转换为字符串时,需指定编码格式。例如,定义字节对象 `b = b"example"` 和字符串对象 `s = "example"`。通过调用 `bytes(s, encoding="utf8")` 可将字符串转为UTF-8编码的字节串;反之,使用 `str(b, encoding="utf-8")` 可将字节串解码为字符串。

bytes与int类型互转

接下来探讨bytes类型与整型(int)之间的转换。这在处理二进制数据协议或文件头解析时非常常见,重点在于字节序(Endianness)的处理。

示例中,定义字节串 `b = b'\x01\x02'`。使用 `int.from_bytes(b, 'little')` 可以将其按小端序转换为整数。反之,通过 `num.to_bytes(2, 'little')` 可将整数 `num` 重新转换为指定长度(此处为2字节)的小端序字节串 `b1`。

bytes与float类型互转

本节介绍bytes类型与浮点型(float)之间的转换。由于浮点数在内存中的存储结构较为复杂,通常需要使用Python标准库中的struct模块来进行精确的打包和解包操作。


import struct
s=b'@zQ\x16'
def byteToFloat(b):
  return struct.unpack('!f',s)[0]

def floatToBytes(f):
  bs = struct.pack("f",f)
  return bytes((bs[3],bs[2],bs[1],bs[0]))
f1=byteToFloat(s)
floatToBytes(f1)

str与bytearray类型互转

最后介绍字符串(str)与字节数组(bytearray)之间的转换。bytearray是可变序列,适用于需要频繁修改字节内容的场景。通过 `bytearray(str1, encoding='utf-8')` 可将字符串转为字节数组,再利用 `.decode('utf8')` 方法将其还原为字符串。


str1='aaabb'
ba=bytearray(str1,encoding='utf-8')
str2=ba.decode('utf8')

上述内容涵盖了Python中几种常见数据类型转换的核心实现方式。希望这些代码实例能对您的编程工作提供实际帮助,欢迎继续支持本站获取更多技术资源。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表