鄙人学习笔记
文章目录
- IO
- 文件
- 字节串(bytes)
IO
定义
在内存中存在数据交换的操作认为是IO操作,比如和终端交互 ,和磁盘(能够长久保存数据数据的存储器)交互,和网络交互等.
程序分类
①IO密集型程序:在程序执行中有大量IO操作,而cpu运算较少.消耗cpu较少,耗时长(IO操作耗时长,效率低.磁盘的读写速度,直接会影响到我们程序运行的速度.)
②计算密集型程序:程序运行中计算较多,IO操作相对较少。cpu消耗多,执行速度快,几乎没有阻塞。
文件
文件是保存在持久化存储设备(硬盘、U盘、光盘…)上的一段数据。从功能角度,分为文本文件(打开后会自动解码为字符,如.py文件)、二进制文件(如视频、音频等,必须要用专业的工具,才能显示出它需要表达的东西)。在Python里把文件视作一种类型的对象,类似之前学习过的其它类型。
字节串(bytes)
在python3中引入了字节串的概念,与字符串str不同,字节串以字节序列值表达数据,更方便用来处理二进制数据。因此字节串是python3表达二进制编码的一种形式。
①普通的ascii编码字符串可以在前面加b转换为字节串,例如:b’hello’
②字符串转换为字节串方法 :encode()
③字节串转换为字符串方法 : decode()
备注:ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
举个例子1(字符串与字节串转换方法1)
字符串前加b,使其转换为字节串
(1)字符串为英文
结果:
结果中显示的b’hello world’就是字节串,为啥它不显示为01的形式呢?因为这是py的一种表现方法而已,但是他在我们的内存中存储的形式的确是二进制存储。
(2)字符串为汉字
结果:
报错!信息显示,只允许ASCII编码序列内的字符串才能表达成字节码存储, ASCII编码序列中没有汉字。
备注 :那我们要是想实现汉字与字节串的相互转换该咋整呢?那就要用到encode()和decode()
举个例子2(字符串与字节串转换方法2)
利用encode()和decode(),实现字符串与字节串之间的相互转换。
(1)encode
结果:
这就是python中将”你好” 转换成字节串的样子,它由两位十六进制为一组来表达的。
(2)decode
结果:
备注:我们也可以通过bytes()这种强转方法,将数据转换成字节串。
举个例子3(byte方法的使用)
①byte()内的参数若为整数n,则表示,将一个长度为n的,元素全为0的列表序列转换为字节串。比如:
结果:
②byte()内的参数若为字符串,则python会将字符串转换为字节串。但注意,要指定encoding参数为”utf-8”
③byte()内的参数若为整数(0-255内)列表,则表示,将列表整数转换为bytes字节串