前置知识点:
程序执行三大核心硬件:cpu,内存,硬盘
执行一个程序:1.将硬盘数据读到内存
2.cpu读取内存的数据执行
3.执行程序时生成的数据有限存入内存
python解释器执行py文件过程:
1.将py解释器的代码由硬盘读取到内存
2.将py文件以普通文本文件的格式由硬盘读到内存
3.python解释器取内存读取py文件的数据
4.识别python语法,执行相应程序
ps:任何文本执行器前两步都一样
字符编码:
将人类字符存入内存和硬盘需要经历的过程: 字符====》字符编码表====》计算机二进制
ASCII表:用八位二进制代表一个英文字符:
0000 0000
1111 1111 最多只能表示255位
八位二进制 = 8bit = 1bytes = 1/1024 kb = .........................................
GKB(中国):用2个bytes来代表一个字符,兼容英文字符
0000 0000 0000 0000
1111 1111 1111 1111 最多可以表示65535位
shift(日本):
euc_kr()韩国;
unicode(万国码):为了兼容所有国家的字符,所有字符都用2个bytes(缺点:1,,占用储存空间 2.增加io次数,程序运行变慢)
utf -8:在unicode二进制数据存入硬盘时做优化而生成
utf-8只与unicode关联
所有英文字符用一个1bytes表示,中文字符用3个bytes表示
必须掌握:1、(内存)unicode ======》编码(encode)======》(硬盘)utf-8二进制字符
(硬盘) utf-8 二进制字符======》解码(decode)=====》(内存)unicode二进制字符
2、保证不乱码的核心:
用什么编码存的数据,就用什么编码取
需要掌握:1、用户无论输入什么字符,存入内存,unicode都可兼容
2、硬盘中无论什么编码文件,读到内存,都可兼容unicode