050❤Python2和Python3字符编码的区别
一、两者区别
区别点 | python2 | python3 |
---|---|---|
是一个语法结构 | 是一个函数,print(‘hello world’) | |
编码问题 | pyhton2诞生的时候没有Unicode,所以python2使用的默认编码格式是asscii编码,这也是python2经常出现编码问题的原因之一 | python3中程序默认数据类型为Unicode,所以直接将数据编码(encode)成为想要转换的数据类型(gbk,utf-8,gb18030,gb2312),然后解码成为对应的数据类型显示在屏幕上 |
除法运算 | 整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数相除会保留小数点的部分得到一个浮点数的结果。 如:>>> 1 / 2 0 >>> 1.0 / 2.0 0.5 |
对于整数之间的相除,结果也会是浮点数, 如:>>> 1/2 0.5 |
input | python2中的raw_input()与python3中的input()功能一样,raw_input()会把用户输入的任何值都作为字符串来对待;而python2中的input不能读取非字符串 | Python3 中只有 input(),并且把用户输入的任何值都作为字符串来对待。 |
不等运算符 | Python 2.x中不等于有两种写法 != 和 <> | Python 3.x中去掉了<>, 只有!=一种写法 |
- 打开python解释器
- python解释器相当于文本编辑器,读取二进制转化为普通字符 a = 1
- 对转化后的普通字符进行解释(定义变量就要新开辟内存空间存放变量)
二、总结
2.1 python2
用文件指定的编码方式存储定义后的变量
如果文件指定编码为'gbk' ,那就会以gbk的形式存储变量, 本来打印的是0和1,但是终端会自动对你的0和1安装终端默认的编码转换成字符 ,如果终端的默认编码是utf8 ,乱码; 如果终端默认编码是gbk,不乱吗
如果定义变量前加上u,coding:xxx不会对他造成任何影响, 因为会用unicode编码存储变量, 终端是任何类型的编码都可以识别
2.2 python3
用unicode编码方式存储定义后的变量
以后写文件以什么格式存储,就以什么格式读取