Python bytearray/bytes/string区别 - Python零基础入门教程
目录
- 一.字节与字符的区别
- 1.字节概念
- 2.字符概念
- 3.字符串概念
- 4.字节串概念
- 二.str / bytes / bytearray 区别
- 三.string 与 bytes / bytearray 相互转换
- 1.string 经过编码 encode 转化成 bytes
- 2.bytes 经过解码 decode 转化成 string
- 四.猜你喜欢
零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
一.字节与字符的区别
在讲解 bytearray / bytes / **string **三者的区别之前,有必要来了解一下字节和字符的区别;
1.字节概念
字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数;
位 ( bit ) 是计算机 内部数据 储存的最小单位,11001100 是一个八位二进制数;
** 字节 ( byte ) 是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示, 1B ( byte , 字节 ) = 8 bit ( 位 ) ;**
1 KB = 1024 B(字节);
1 MB = 1024 KB; (2^10 B)
1 GB = 1024 MB; (2^20 B)
1 TB = 1024 GB; (2^30 B)
2.字符概念
字符 是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等;
- 一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
- 一般 gbk 编码下,一个汉字 字符 占用 2 个 字节;
3.字符串概念
字符串是字符序列,它是一种抽象的概念,不能直接存储在硬盘 – 字节串是给计算机看的,给计算机传输或者保存的,在 Python 中,程序中的文本都用字符串表示;
4.字节串概念
字节串是字节序列,它可以直接存储在硬盘, 字节串是给计算机看的。它们之间的映射被称为编码 / 解码 – 字符串是给人看的,用来操作的;
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":# 字符串str 转 字节bytess = '猿说python'b = s.encode() # 编码,默认的是UTF-8print(b)print(type(b))# 字节bytes 转 字符串strb = b'\xe7\x8c\xbf\xe8\xaf\xb4python'.decode(encoding='UTF-8') # 解码print(b)print(type(b))'''
输出结果:b'\xe7\x8c\xbf\xe8\xaf\xb4python'
<class 'bytes'>
猿说python
<class 'str'>
'''
二.str / bytes / bytearray 区别
1.str 是字符数据(如:文本,给人看的),bytes 和 bytearray 是字节数据(如:二进制数据,给计算机看的),它们都是序列,可以进行迭代遍历。
2.str 和 bytes 是不可变序列,通过 str 类型的通用函数,比如 find 、replace 、islower 等函数修改后实际上是重新创建了新对象;bytearray 是可变序列,可以原处修改字节。
3.bytes 和 bytearray 都能使用 str 类型的通用函数,比如 find 、replace 、islower 等,不能用的是 str 的格式化操作。
4.Python 3.x 中默认 str 是 unicode 格式编码的,例如 UTF-8 字符集。
三.string 与 bytes / bytearray 相互转换
1.string 经过编码 encode 转化成 bytes
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":s = "https://www.codersrc.com"# 将字符串转换为字节对象b2 = bytes(s, encoding='utf8') # 必须制定编码格式# print(b2)# 字符串encode将获得一个bytes对象b3 = str.encode(s)b4 = s.encode()print(b3)print(type(b3))print(b4)print(type(b4))'''
输出结果:b'https://www.codersrc.com'
<class 'bytes'>
b'https://www.codersrc.com'
<class 'bytes'>
'''
2.bytes 经过解码 decode 转化成 string
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":# 字节对象bb = bytes("python教程-猿说python","utf-8")#方案一:s2 = bytes.decode(b)# 方案二:s3 = b.decode()print(s2)print(s3)'''
输出结果:python教程-猿说python
python教程-猿说python
'''
注意:如果 bytes 初始化含有中文的字符串必须设置编码格式,否则报错:TypeError: string argument without an encoding
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""b = bytes("猿说python")>>> b = bytes("猿说python")
>>> TypeError: string argument without an encoding
四.猜你喜欢
- Python for 循环
- Python 字符串
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
- Python 函数声明和调用
- Python 不定长参数 *argc/**kargcs
- Python 匿名函数 lambda
- Python return 逻辑判断表达式
- Python 字符串/列表/元组/字典之间的相互转换
- Python 局部变量和全局变量
- Python type 函数和 isinstance 函数区别
- Python is 和 == 区别
- Python 可变数据类型和不可变数据类型
- Python 浅拷贝和深拷贝
未经允许不得转载:猿说编程 » Python bytearray/bytes/string 区别
Python bytearray/bytes/string区别 - Python零基础入门教程相关推荐
- Python bytearray/bytes/string区别
目录 一.字节与字符的区别 1.字节概念 2.字符概念 3.字符串概念 4.字节串概念 二.str / bytes / bytearray 区别 三.string 与 bytes / bytearra ...
- Python str / bytes / unicode 区别详解 - Python零基础入门教程
目录 一.前言 二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别 2.Python3.x 版本中 s ...
- python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)
一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...
- 视频教程-Python零基础入门教程-Python
Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...
- Python零基础入门教程( 快速入门)
前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...
- 视频教程-ARDUINO零基础入门教程【代码编程篇】-Arduino
ARDUINO零基础入门教程[代码编程篇] 精通各种单片机编程,有十年以上ARDUINO,51单片机/STM32/PIC/AVR编程,硬件设计,绘图,编程经验.熟悉各种常用传感器使用和物联网通讯 赵勇 ...
- C语言 const 修饰函数参数 - C语言零基础入门教程
C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...
- SEO零基础入门教程(外链的发布和软文编写)
seo的作用是众所周知的,对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo ...
- 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...
很多玩儿抖音的朋友都看过九宫格视频,但是并不是每个玩抖音的人都会制作这个九宫格视频,实际这个需要借助小工具来帮忙,而常用抖音的朋友们会对剪映更加熟悉一些,且九宫格视频在剪映内的制作方式则比较简单.那么 ...
最新文章
- python opencv单通道转多通道_13、OpenCV绘图和文本显示
- 大厂面试篇:五轮面试,阿里offer到手!
- 4月份不良与垃圾信息举报:垃圾邮件占37.4%
- ProtoBuf在使用protoc进行编译时提示: Required fields are not allowed in proto3
- java大数据开发是做什么的_Java转型大数据开发教材,技能储备都在这儿!
- C51_按键按下,流水灯亮起,数码管显示按下的次数
- 示范NTFS 卷上的硬链接
- C语言 strlen 函数 - C语言零基础入门教程
- 技术沙龙之液晶监视器和显示器
- java window的对象方法,[Java教程]如何真正重写window对象的方法_星空网
- 《Adobe Flash Professional CC经典教程》——1.15 复习
- 微信APP支付(基于Java实现微信APP支付)
- input组件android,React-Native TextInput组件详解及实例代码
- html表头跟随滚动,JS实现table表格固定表头且表头随横向滚动而滚动_心善_前端开发者...
- c51语言语句 指令集,MCU
- matlab画交通标志,基于MATLAB的交通标志设计方法研究
- PCL visualizer
- 瓦尔德-沃尔福威茨检验
- 三维激光扫描后处理软件_甘肃靠谱的激光三维扫描仪_天原地信商贸
- word2016标题序号变黑色竖线解决方法