50-Python2和3字符编码的区别

Python2和3字符编码的区别

区别点 python2 python3
print 是一个语法结构 是一个函数,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中去掉了<>, 只有!=一种写法
  1. 打开python解释器
  2. python解释器相当于文本编辑器,读取二进制转化为普通字符 a = 1
  3. 对转化后的普通字符进行解释(定义变量就要新开辟内存空间存放变量)

python2

用文件指定的编码方式存储定义后的变量

如果文件指定编码为'gbk' ,那就会以gbk的形式存储变量, 本来打印的是0和1,但是终端会自动对你的0和1安装终端默认的编码转换成字符 ,如果终端的默认编码是utf8 ,乱码; 如果终端默认编码是gbk,不乱吗

如果定义变量前加上u,coding:xxx不会对他造成任何影响, 因为会用unicode编码存储变量, 终端是任何类型的编码都可以识别

python3

用unicode编码方式存储定义后的变量

以后写文件以什么格式存储,就以什么格式读取

原文地址:https://www.cnblogs.com/LWX-YEER/p/11379544.html