内置函数 -- bytes -- 字节码与字符串相互转换
时间:2022-07-25
本文章向大家介绍内置函数 -- bytes -- 字节码与字符串相互转换,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
说明:
1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改。
2. 当3个参数都不传的时候,返回长度为0的字节数组
>>> b = bytes()
>>> b
b''
>>> len(b)
0
3. 当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组
>>> bytes('中文') #需传入编码格式
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
bytes('中文')
TypeError: string argument without an encoding
>>> bytes('中文','utf-8')
b'xe4xb8xadxe6x96x87'
>>> '中文'.encode('utf-8')
b'xe4xb8xadxe6x96x87'
4. 当source参数为整数时,返回这个整数所指定长度的空字节数组
>>> bytes(2)
b'x00x00'
>>> bytes(-2) #整数需大于0,用于做数组长度
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
bytes(-2)
ValueError: negative count
5. 当source参数为实现了buffer接口的object对象时,那么将使用只读方式将字节读取到字节数组后返回
6. 当source参数是一个可迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里
>>> bytes([1,2,3])
b'x01x02x03'
>>> bytes([256,2,3])
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
bytes([256,2,3])
ValueError: bytes must be in range(0, 256)
7. 返回数组不可修改
>>> b = bytes(10)
>>> b
b'x00x00x00x00x00x00x00x00x00x00'
>>> b[0]
0
>>> b[1] = 1 #不可修改
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
b[1] = 1
TypeError: 'bytes' object does not support item assignment
>>> b = bytearray(10)
>>> b
bytearray(b'x00x00x00x00x00x00x00x00x00x00')
>>> b[1] = 1 #可修改
>>> b
bytearray(b'x00x01x00x00x00x00x00x00x00x00')
内容总结:
字节码转换为字符串:
1 s = "中国人,美国人"
2 byte_str = bytes(s,encoding="utf-8")
3 print(byte_str)
输出结果:
b'xe4xb8xadxe5x9bxbdxe4xbaxba,xe7xbex8exe5x9bxbdxe4xbaxba'
字符串转换为字节码:
1 tr_str = str(byte_str,encoding="utf-8")
2 print(tr_str)
输出结果:
中国人,美国人
- 从傅立叶变换到Gabor滤波器
- 三个小时学会wordpress模板制作
- The each() function is deprecated报错的解决方法
- 书接上文:薛定谔的猫是如何诞生的?
- docker源码分析(3)---镜像(1)
- k8s源码分析-----kubelet(8)pod管理
- 大会 | DiracNets:无需跳层连接的ResNet
- golang时间戳格式化与解析
- golang-net/http源码分析之http server
- 白话面向智能体编程(Agent Oriented Programmig, AOP)之四
- 用fpm来做rpm打包
- Nginx配置文件nginx.conf详解
- 这是一位师兄的算法学习之路
- Windows下JavaWeb环境的安装笔记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Web API--入门--(一)ASP.NET Web API 2(C#)入门
- C# 关键字之 decimal
- 设计模式(8)[JS版]-JavaScript设计模式之如何实现适配器模式???
- Python3与OpenCV3.3 图像处理(二)--图像基本操作
- 前端基础:ECMAScript 6
- 设计模式(9)[JS版]-JavaScript设计模式之如何实现桥接模式???
- 前端基础:Boostrap
- 设计模式(10)[JS版]-JavaScript如何实现组合模式???
- JavaWeb - Servlet:基本概念,HTTP 协议,Tomcat 服务器
- 漫画:设计模式之 “工厂模式”
- 设计模式(11)[JS版]-JavaScript中的注解之装饰器模式
- JavaWeb - Servlet:重定向和转发,状态管理
- 设计模式(12)[JS版]--JavaScript必会设计模式之外观模式(Façade Pattern)
- JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式
- kill -9 导致 Kakfa 重启失败的惨痛经历!