python2和python3字符串区别-Python教程

资源魔 32 0
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使用问题

抱歉,评论功能暂时关闭!