Python2中,字符串无奈齐全地支持国内字符集以及Unicode编码。为理解决这类限度,Python2对Unicode数据应用了独自的字符串类型。要输出Unicode字符串字面量,要正在第一个引号前加之'u'。Python2中一般字符串实际上就是曾经编码(非Unicode)的字节字符串。正在Python3中,不用退出这个前缀字符,不然是语法谬误,这是由于一切的字符串默许曾经是Unicode编码了。
然而python3中多出一种字符串(保举学习:Python视频教程)
type(b'132') => byte型
而正在python2中这样写就会报错
以是不言而喻,decode以及encode的应用也会有很年夜的区分
python2中的decode是将str型转换为unicode型
python3中的decode是将byte型转换为str型
以python3为例:
src = ‘你好世界’
此时的str为 str类型,假如需求把它转乘byte类型,能够经过:
src = src.encode('utf-8')
此时src曾经是byte类型了,假如想再转回str,间接应用:
src = src .decode()
另外,python3中open函数加之了encoding参数,且默许为utf-8,即关上的文件据柄进行read或许write时,只接纳蕴含unicode格局的str字符穿。
此时假如传入二进制文件的话,则会报错,例如:
with open('a.bin', 'w') as f: f.write('xxx')
假如想要读写二进制文件的话,需求指定关上形式为‘wb’ 或许 ‘rb’
另外,假如抓取网页时,发现无奈失常显示,则需求对内容进行转码。
更多Python相干技巧文章,请拜访Python教程栏目进行学习!
以上就是python2以及python3字符串区分的具体内容,更多请存眷资源魔其它相干文章!
标签: Python python教程 python编程 python使用问题
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!