首页 > 编程语言 >Python的数值与bytes类型

Python的数值与bytes类型

时间:2024-11-01 13:11:51浏览次数:4  
标签:bytearray abc 字节 Python bytes 数值 二进制 97

Python中数值的表示

进制表示

n= 97 # 十进制表示97
n= 0b01100001 # 二进制表示97
n= 0x61 # 十六进制表示97
n= 0o141 # 八进制表示97

上面四种方式定义的值是等价的,均为十进制的97

ASCII编码表示

n= "a"
n= "\b01100001"
n= "\x61"
n= "\o141"

上面四种方式定义的值也是等价的,均为字符"a",多字节字符或字符串同样可以用上述方式表示

# 使用encode查看一下中国的二进制编码为
str.encode("中国")
# print: b'\xe4\xb8\xad\xe5\x9b\xbd',前缀 b表示该值的类型为bytes,区别于字符串的表示

# 因此,我们可以使用这个字节表示来定义“中国”
a= '\xe4b8ade59bbd'
# 或者 '\xe4\xb8\xad\xe5\x9b\xbd'

Python进制转换

# 内置函数
chr(97) # "a"
ord('a') # 97

# 转化十进制数的不同进制表示
bin(97)
oct(97)
hex(97)

# 使用format(),如:
format(97,"#x") # "#0o" "#b" 或 "x" "o" "b"

# 3.6版本还可以使用{}
f'{255:X} # f'{255:#X}

# 使用C风格表示
"%x"%10 # "%#x"%10
"%o"%10 # "%#o"%10

将一个字节,字符或字符串转换成值类型

ord("a")
int.from_bytes(b"a","big") # big表示大端模式,即小地址存高字节

bytes与bytearray类型

类比str与list理解bytes和bytearray

bytes可以看作是一组二进制数值(0-255)的str序列
bytearray可以看作是一组二进制数值(0-255)的list序列,每个元素是一个byte

bytes类型

str转换为bytes,即将str中每个字符转换成相应的二进制编码

s= "abc"
bs= bytes("abc")

二进制类型bytes使用b'abc'表示,使用二进制存储

b= bytes([97,98,99])
print(b) # b'abc'

字符串转bytes类型

bs= bytes("abc","utf-8")
# 或 bs= "abc".encode()

# 十六进制转换成bytes类型
b= bytes.fromhex("61 62 63") # b"abc"
b.hex()

数值转换成bytes类型

b= bytes(range(97,100)) # b'abc'
# b= bytes([97,98,99])
# b= bytes([97])

# 直接传入十进制数值对象而不是可迭代对象,将会生成对应数值字节的空bytes
b4 = bytes(3) # b'\x00\x00\x00' 三个空字符的 bytes

# 利用bytes对象转换为十进制数值
n= int.from_bytes(b"abc","big") # "abc"三个字节拼接在一起作为一个二进制数,并计算为十进制数输出
print(num) # 6382179

bytes方法

基本上和str方法一致,如replace,split,partation等操作,区别是bytes操作的是一个bytes二进制字节

b"abc".replace(b"a", b"x")

bytearray类型

类似于list类型,每个元素为字节值
需要一个可迭代对象来初始化bytearray对象

bytearray("abc", encoding="utf-8")
bytearray(b"abc") # bytes与bytearray不存在编码问题
bytearray([97,98,99]) # bytearray(b'abc')
ba= bytearray(range(97,100))
ba[4]= 122

bytearray方法

类似于列表,如append,extend,insert等操作

n= bytearray(b"abc")
n.extend(n) # bytearray(b'abcabc')

标签:bytearray,abc,字节,Python,bytes,数值,二进制,97
From: https://www.cnblogs.com/sgqmax/p/18519932

相关文章

  • https脚本python和bash版本
    以下是一个使用 `curl` 的 Bash 脚本,可以发送 HTTPS 的 GET 和 POST 请求,同时支持 cookies 和gzip 压缩: ```bash#!/bin/bash # 默认配置COOKIE_FILE="cookies.txt" # 存储cookies的文件USER_AGENT="Mozilla/5.0(X11;Ubuntu;Linuxx86_64)AppleWe......
  • 【Python】网络请求与数据获取:Requests库的使用与技巧
    网络请求与数据获取:Requests库的使用与技巧在现代Web开发与数据科学工作中,从API、网页或服务端获取数据是非常常见的任务,而Python的Requests库为此提供了便捷且功能强大的工具。本文将从基本的HTTP请求操作出发,结合常见的数据获取需求,深入讲解Requests的使用......
  • python 计算 sin 值
    概述当角(弧度描述)x足够小时,sin(x)约等于x,而已知三角等式sin(x)=3sin(x/3)-4sin^3(x/3),用python语言计算任意大的弧度角的sin值实现可以利用给定的三角恒等式[\sin(x)=3\sin\left(\frac{x}{3}\right)-4\sin^3\left(\frac{x}{3}\right)]来递归地计算任意弧度......
  • 使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
    本人之前对C#开发非常喜欢,也从事开发C#开发桌面开发、Web后端、Vue前端应用开发多年,最近一直在研究使用Python,希望能够把C#的一些好的设计模式、开发便利经验引入到Python开发中,很多时候类似的开发方式,可以极大提高我们开发的效率,本篇随笔对wxpython控件实现类似C#扩展函数处理的......
  • 【含文档+PPT+源码】基于Python校园跑腿管理系统设计与实现
    项目介绍本课程演示的是一款基于Python校园跑腿管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为......
  • 【粒子群优化算法】基于Schwefel‘s P2.21函数的PSO算法变体性能分析(附完整算法Python
    基于Schwefel'sP2.21函数的PSO算法变体性能分析(附完整算法Python代码)摘要1.引言1.1研究目的2.算法与测试函数2.1Schwefel'sP2.21函数2.2PSO算法变体2.2.1标准PSO(SPSO)2.2.2自适应PSO(APSO)2.2.3改进的带变异PSO(IPSOM)2.2.4混合PSO(HPSO)3.实验设计3.......
  • 【Python实例】hdf文件简介及基于Python导入hdf文件
    【Python实例】hdf文件简介及基于Python导入hdf文件.hdf文件概述hdf工具-HDFView基于Python导入hdf文件实例1:判断是否为hdf文件实例2:打开并读取hdf4文件(地面反照率数据)实例3:绘制图形(地面反照率数据)参考HDF(HierarchicalDataFormat)是一种用于存储和组织大量数据的文......
  • python使用魔法函数__getitem__实现字典和列表式访问自定义类型
    起因想起C++可以实现运算符重载,以实现以数组的方式([])访问我们的类.我想要实现一个类,可以同时用类似于字典和就想到python能不能实现这个效果,而且显然是可以的,不然numpy是怎么实现属于自己的数组的?#期望实现效果classmyclass: passc=myclass()#像这样使用[]访......
  • Python中的文件I/O操作
    在Python编程中,文件I/O(输入/输出)是一个重要的主题,涉及如何读取和写入文件。无论是处理文本文件还是二进制文件,Python提供了简洁易用的接口。本文将介绍如何在Python中进行文件I/O操作,包括读取、写入和文件处理的最佳实践。文件打开与关闭在Python中,使用内置的open()函数打开......
  • 使用Python和Selenium获取BOOS直聘职位信息
    文章目录引言环境准备网页分析代码解析1.导入必要的库2.定义爬虫类3.启动浏览器4.主要爬取逻辑5.提取职位信息6.保存数据到CSV7.初始化CSV文件8.清理和整理CSV数据9.全部代码结语引言在当今就业比较困难,很多人对于要投递的岗位相关行业信息不了解,如果有招......