博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python-day10--字符编码
阅读量:5086 次
发布时间:2019-06-13

本文共 1136 字,大约阅读时间需要 3 分钟。

1.回顾:

软件→操作系统→硬件

2.文本编辑器:

    启动:硬盘→内存→运行(cpu)

    读文件:硬盘→内存→CPU读

    存文件:保存到硬盘中

3.python解释器

    启动:硬盘→内存→运行(cpu)

    读文件:硬盘→内存→CPU读

(这两阶段与文本编辑器相同,但第三阶段就不同了,关系到语法等问题)

    解释执行:这个阶段就要在内存中开辟新的空间

4.字符编码:顾名思义就是编码字符的

①字符编码的作用:把人能识别的字符通过一种标准翻译成计算能识别的二进制,翻译过程的标准就是字符编码表

②不同的字符编码表

ASCII

    用8个位表示一个字节bytes,共可表示2**8=256种

GBK

    用2个bytes表示1个字符,共2**16种

Unicode(万国码)

    用2个bytes表示1个字符(但是在保存英文字符的时候就浪费空间)

UTF-8(万国码)

    对英文存1个bytes,中文存3个bytes

5.计算机内存中用Unicode(速度快),硬盘中用UTF-8(占用空间小,传输稳定)

6.保存文件过程:内存Unicode   →   encode   →   硬盘UTF-8/或其他字符编码

   读取文件过程:硬盘UTF-8/或其他字符编码  →  decode   →   内存Unicode

7.以上总结:

①存文件的时候用的什么编码(encode)取的时候就要用什么编码取(decode)

②python3解释器默认的字符编码是UTF-8,可以更改:   #coding:gbk或其他

③python2解释器默认的字符编码是ASCII,可以更改:   #coding:uft-8或其他

8.python解释器第三阶段才用到字符串,执行中遇到字符串就会开辟新的内存空间存起来。

在python3中字符串都是unicode格式的二进制存放在内存中,而在python2中字符串都是已经encode后的结果,即bytes。

9.Unicode   →   encode   →   bytes

   bytes       →   decode   →   Unicode

10.python3中有两种形式的字符串:

    ①.Unicode(解释器自动控制)

    ②.bytes(Unicode→encode→bytes)(人为控制)

11.python2的字符串有两种:

    ①.   str = bytes(Unicode→encode→bytes)(解释器自动控制)

    ②.   u'  字符串  '       (相当于python3中的Unicode)

12.为什么要有bytes:

     计算机最基本的传输信号就是二进制,就相当说最基本的传输信号就是bytes,所以数据要传输就要用bytes。

 

 

 

 

    

转载于:https://www.cnblogs.com/liuwei0824/p/7230678.html

你可能感兴趣的文章
HTML列表,表格与媒体元素
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>