一、计算机的系统分为三层:
应用软件
操作系统
硬件
二、软件执行的过程
1、文本编辑器读一个文件的三个过程
⑴、先启动文本编辑器
⑵、文本编辑器会将文件内容读入内存
⑶、将读入内存的内容显示到屏幕上
2、cpython解释器执行一个python文件的三个过程:
⑴、先启动python解释器
⑵、python解释器会将python文件的内容当中普通文本内容读入内存
⑶、开始解释执行刚刚读入内存的代码,识别python语法
三、字符编码
字符编码指将字符编码成二进制数字(字节)
编码的过程一定要遵循一个标准,这个标准称为字符编码表
字符-----编码----->二进制数字(字节)-----解码------>字符
四、编码规则:内存中固定使用unicode编码(不可更改),我们可以改变的是数据由内存存到硬盘时采用的编码(应该采用utf-8)
1、ASCII表:只能识别英文字符,用8bit(1Bytes)对应1个英文字符
2、GBK表:可识别中文、英文字符,用8bit(1Bytes)对应1个英文字符,用16bit(2Bytes)对应1个中文字符
1个英文字符:8bit(1Bytes)
1个中文字符:16bit(2Bytes)
3、unicode(内存中默认使用该编码):用2Bytes对应1个字符
1、可以识别万国字符
2、可以与各种字符编码的二进制数字都有对应关系
4、utf-8全称Unicode Transformation Format
1个英文字符:8bit(1Bytes)
1个中文字符:48bit(3Bytes)
***unicode二进制-----编码----->utf-8二进制-----解码----->unicode二进制
五、解决乱码的核心问题
1、当初以什么编码存的,就应该以什么编码去读(解码)
2、保证运行Python程序的前两个阶段不乱码的解决方案:在文件首行添加文件头如#coding:utf8(utf8指存储时的字符编码)
六、python解释器的编码
1、python解释器默认的编码
python3:默认utf-8
python2:默认ASCII
七、python对字符串的存储
python3的字符串类型在内存中存成unicode格式的二进制
python2的字符串类型在字符前加‘u‘内存中存成unicode格式的二进制
八、打印字符编码
x = ‘上‘
res1 = x.encode(‘utf-8‘)
res2 = x.encode(‘gbk‘)
print(res1)--->b‘\xe4\xb8\x8a‘
print(res2)--->b‘\xc9\xcf‘
encode把字符编码为二进制数字,输出时为了方便阅读python解释器自动把二进制字符转为十六进制展示02.字符编码
原文:https://www.cnblogs.com/nicolezhao/p/10789147.html