第一种
识别python语法执行python代码 x = '上'
python2 如果不指定文件头 中文没法存储 那是因为python2解释器识别语法存储数据的时候默认使用的是ASCII
如果指定了文件头 python2解释器识别语法存储数据的时候使用文件头指定的编码
python2中通常都会在中文的字符串前面加一个u
x = u'上'
告诉python2解释器将上存成unicode的形式
python3 里面的字符串直接存成unicode(******)
保证不乱码的核心:
当初以什么编码存的(encode) 就以什么编码取(decode)
第二种
python2在读取文件默认使用的是ASCII码
注:为什么2那时候用的是万国码呢 是因为那个时候还没有 "utf-8"
python3在读取文件默认使用的是utf-8码
注:而现在随着时间的推移utf-8会慢慢替代万国码
第三种:
python2中的range返回的是一个列表
python3中的range返回的是一个迭代值
for i in range(1,10)在python2和python3中都可以使用
但是如果要生成1-10的列表,在python2就需要用list(range(1,10))