储备知识点:
1、计算系统可以分为三层:
应用程序层
操作系统
计算硬件
2、运行Python程序的三个步骤:
1.先启动Python解释器
2.再将Python文件当做普通的文本文件读入内存
3.解释执行读入内存的代码,开始识别语法。
字符编码
1、什么是字符编码?
字符编码表,将是人类使用的字符与数字一一对应,方便计算的处理与认识。
1Bytes = 8bit 一个字节等于8个二进制位
字符编码表的发展
ASCII码:只能识别英文字符,1英文字符=8bit
用8个二进制bit(比特位)位表示一个英文字符
GBK:能识别汉字与英文,1汉字=16bit,1英文字符=8bit
Shift_JIS
Euc-kr
unicode:能够识别万国字符,1字符=2Bytes=16bit
两大特点:
1. 能够兼容万国字符
2. 与各个国家的字符编码都有映射关系
utf-8:是unicode的转换格式,1个英文字符=1Bytes 1汉字=3Bytes
重点:
1、编码和解码的概念:
字符(输入的内容)----编码----》Unicode的二进制(内存中状态)------编码----》gbk的二进制(硬盘中存储的状态)
gbk的二进制(硬盘中存储的状态)-----解码-----》Unicode的二进制(内存的状态)------解码----》字符(输出的内容)
2、解决乱码的核心方法
字符用什么编码格式编码的,就应该用什么编码格式进行解码。上面两条编码和解码都相同。
结论在,需要在py文件,文件头定义好。#coding:需要的使用的字符编码。
3、python解释器默认的字符编码
python2:ASCII
python3:UTF-8
文件头设定在Python解释器中的作用
通过文件头可以修改python解释器默认使用的字符编码在文件首行写:#coding:文件当初存的时候用的字符编码
针对python2解释器中定义字符串应该:x=u"上"
对于python3解释即便是x="上"不加u前缀也是存成unicode
在python3中
x='上' # '上'内存中存成了uncidoe
unicode--------encode----------->gbk
res=x.encode('gbk') #res是gbk格式的二进制,称之为bytes类型
gbk(bytes类型)-------decode---------->unicode
y=res.decode('gbk') #y就是unicode
需要掌握字符编码的操作::
1. 编写python文件,首行应该加文件头:#coding:文件存时用的编码
2. 用python2写程序,定义字符串应该加前缀u,如x=u'上'
3. python3中的字符串都是unicode编码的,python3的字符串encode之后可以得到bytes类型