Python bytearray 函数 - Python零基础入门教程_猿说编程的博客-程序员宅基地

技术标签: python  Python函数  bytearray  bytearray函数  python教程  

目录

基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python 除了 bytes 字节序列 之外,还有 bytearray 可变的字节序列,具体区别在哪呢?顾名思义,bytes 是不可变的,而 bytearray 是可变的!具体本文会有详细的讲解!

一.Python bytearray 函数简介

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray 函数.py
@Time:2021/05/04 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

# 1.定义空的字节序列bytearray
bytearray() -> empty bytearrayarray

# 2.定义指定个数的字节序列bytes,默认以0填充,不能是浮点数
bytearray(int) -> bytes array of size given by the parameter initialized with null bytes

# 3.定义指定内容的字节序列bytes
bytearray(bytes_or_buffer) -> mutable copy of bytes_or_buffer

# 4.定义指定内容的字节序列bytes
bytearray(string, encoding[, errors]) -> bytearray

# 5.定义指定内容的字节序列bytes,只能为int 类型,不能含有float 或者 str等其他类型变量
bytearray(iterable_of_ints) -> bytearray

返回值 : 返回一个新的可变字节序列,可变字节序列 bytearray 有一个明显的特征,输出的时候最前面会有一个字符 b 标识,举个例子:

b'\x64\x65\x66'
b'i love you'
b'https://www.codersrc.com'

凡是输出前面带有字符 b 标识的都是字节序列 ;bytearray 可变的字节序列,bytes 是不可变的字节序列;

二.Python bytearray 函数使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray 函数.py
@Time:2021/05/04 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""


if __name__ == "__main__":

    # 定义空的字节序列bytearray
    b1 = bytearray()
    print(b1)
    print(type(b1))
    print("***"*20)

    # 定义指定个数的字节序列bytes,默认以0填充,不能是浮点数
    b2 = bytearray(10)
    print(b2)
    print(type(b2))
    print("***" * 20)

    # 定义指定内容的字节序列bytes
    b3 = bytes('abc', 'utf-8')
    print(b3)
    print(type(b3))
    print("***" * 20)

    # 正常输出
    b1 = bytearray([1, 2, 3, 4])
    >> > b'\x01\x02\x03\x04'

    # bytes字节序列必须是 0 ~ 255 之间的整数,不能含有float类型
    b1 = bytearray([1.1, 2.2, 3, 4])
    >> > TypeError: an integer is required

    # bytes字节序列必须是 0 ~ 255 之间的整数,不能含有str类型
    b1 = bytearray([1, 'a', 2, 3])
    >> > TypeError: an integer is required

    # bytes字节序列必须是 0 ~ 255 之间的整数,不能大于或者等于256
    b1 = bytearray([1, 257])
    >> > ValueError: bytes  must be in range(0, 256)


'''
输出结果:

bytearray(b'')
<class 'bytearray'>
************************************************************
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
<class 'bytearray'>
************************************************************
b'abc'
<class 'bytes'>
************************************************************
'''

三.bytearray 与 bytes 区别

  • 相同点:bytearray 与 bytes 取值范围都是 0 ~ 256 ;
  • 不同点:bytearray 可变的字节序列,bytes 是不可变的字节序列 ;

1. bytes 不可变字节序列

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray 函数.py
@Time:2021/05/04 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

if __name__ == "__main__":
    # bytes不可变字节序列
    b1 = b"abcd"
    for i in b1:
        print(i,end=" ")
    print()
    b1[0] = "A"


'''
输出结果:

97 98 99 100
Traceback (most recent call last):
  File "E:/Project/python/python_project/untitled10/123.py", line 22, in <module>
    b1[0] = "A"
TypeError: 'bytes' object does not support item assignment
'''

2.bytearray 可变字节序列

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray 函数.py
@Time:2021/05/04 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

if __name__ == "__main__":

    # bytearray可变字节序列
    b1 = b"abcd"
    b2 = bytearray(b1)
    print("修改之前:",b2)

    b2[0] = 65
    print("修改之后:", b2)

'''
输出结果:

修改之前: bytearray(b'abcd')
修改之后: bytearray(b'Abcd')
'''

四.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python bytearray 函数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZhaDeNianQu/article/details/118959278

智能推荐

disabled_button-程序员宅基地

初步了解前端知识知识点:前端: _disabled_button

material theme 自定义,Material-UI v1:使用自定义颜色进行主题配置-程序员宅基地

This should be a pretty simple thing but I am pretty new to material-ui.I am using material-ui v1 and I am trying to change the primary color of the theme. This is how my theme object looks like witho..._material theme ui更改注释颜色

华为交换机配置入门实战系列教程(ENSP)_华为交换机配置教程-程序员宅基地

​《第一讲:测试环境的基本搭建》主要讲解使用了哪些软件。《第二讲:主机直连配置》主要讲解了两台主机通过网线直接连线配置通信。《第三讲:交换机的基本介绍》主要讲解了交换机需要用到的一些基本知识讲解。《第四讲:两主机通过交换机通信》两台PC机链接一台交换机配置相同vlan使其进行通信。《第五讲:不同交换机配置相同vlan通信》两台PC机分别链接两台交换机,并且两台PC主机配置相同的vlan。《第六讲:不同vlan相互通信》两台PC机链接一台交换机,两主机配置不同vlan使其_华为交换机配置教程

2-sat(强连通分量求法一 判断是否存在解法)-程序员宅基地

好博客链接:http://www.cnblogs.com/ambition/archive/2011/07/30/2-sat.html(内有ppt讲解、题集、论文)建图如上篇一样,主要不同是上篇利用暴力来求,但上篇可以保证按字典序最小进行输出,此处利用了比较好的算法,产生了o(m)的复杂度,应用于所有题,主要思路是利用了图的对称的原理,根据建图后可知,若存在强连通图,则其中选择了一个,其他点也

Vim编辑器-Shell脚本-程序员宅基地

一、Vim编辑器1.1 概念及其作用用于编写、修改文本,是默认已经安装在Linux上的文本编辑器,类似于windows的Word1.2 vim的三个工作模式 1)命令模式:Vi/Vim 默认模式,不能输入字符,但是可以控制光标移动,关键词检索,复制,粘贴等基本功能,通过命令模式可以进入末行模式和输入模式2)末行模式:从命令模式上输入冒号(: )进入,可以对文本进行保存、退出、..._在vi/vim编辑器里编写bash shell程序,给程序加上x权限,

随便推点

python写入数据库_python 写入数据库-程序员宅基地

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平..._python循环写入数据库

机器学习的相关概念_为什么机器学习中的解是范数等值线与误差平方和等值线的交点-程序员宅基地

1、最大熵模型最大熵原理是概率学习的一个准则。最大熵原理认为,在学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合。所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型,而这个熵最大的模型称为最大熵模型。最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“..._为什么机器学习中的解是范数等值线与误差平方和等值线的交点

2012matlab模拟题及答案,MATLAB语言及应用-A卷_2012及答案-程序员宅基地

《MATLAB语言及应用-A卷_2012及答案》由会员分享,可在线阅读,更多相关《MATLAB语言及应用-A卷_2012及答案(4页珍藏版)》请在人人文库网上搜索。1、试卷专业年级班级 学号(10位) 姓名 .密 封 线 密 封 线 课程名称MATLAB语言及应用A卷闭卷命题教师课程代码适用班级电子0901,电气0901/02座位号制卷份数120考试时量100分钟总分100分得分考生注意事项:1...._simulink填空题

嵌入式Linux开发——(十四)移植Linux内核_linux嵌入式开发 内核-程序员宅基地

基于Linux2.6.22.61、相关常识 ①VERSION = 2 PATCHLEVEL=6 主版本号,稳定版本用偶数来表示,每隔2~~3年出现一个稳定版 ②SUBLEVEL=22 次版本号,每隔1~~2个月一更新 ③EXTRAVERSION = .6 扩展版本号 ④获取内核网址:http://www.ke..._linux嵌入式开发 内核

怎样实现四舍五入,保留小数点后两位小数?_易语言取小数点后两位-程序员宅基地

package com.venus.csdn;import java.text.NumberFormat;public class Number { public static void main(String[] args){ double numb = 100000.006; NumberFormat nf = NumberFormat.getNumberInst_易语言取小数点后两位

异常和枚举_软件上枚举异常什么意思-程序员宅基地

异常一:异常异常是改变程序正常执行流程的意外情况。异常的条件都是应用级别的异常。系统级别的异常程序员无法处理。异常:是一个对象,Exceptionclass Exception{发生问题的主体(Object)对问题本身的有效描述(String)}二:异常的结构try{//可能出现异常的代码…int k= 10/0;……}catch(ExceptionType1 e){…//针对ExceptionType1类型的异常处理}catch(ExceptionType2 e){_软件上枚举异常什么意思