0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python2与Python3中对字符串的支持

麦辣鸡腿堡 来源:Python都知道 作者:了不起 2023-07-05 16:15 次阅读

其实Python3中对字符串支持的改进,不仅仅是更改了默认编码,而是重新进行了字符串的实现,而且它已经实现了对UNICODE的内置支持,从这方面来讲Python已经和JAVA一样优秀。下面我们来看下Python2与Python3中对字符串的支持有什么区别:

Python2

Python2中对字符串的支持由以下三个类提供

class basestring(object)

class str(basestring)

class unicode(basestring)

执行help(str)和help(bytes)会发现结果都是str类的定义,这也说明Python2中str就是字节串,而后来的unicode对象对应才是真正的字符串。

#!/usr/bin/envpython

#-*-coding:utf-8-*-

a=

'你好'

b=

u'你好'

print(type(a),len(a))

print(type(b),len(b))

输出结果:

(

<>

'str'>,

6

)

(

<>

'unicode'>,

2

)

Python3

Python3中对字符串的支持进行了实现类层次的上简化,去掉了unicode类,添加了一个bytes类。从表面上来看,可以认为Python3中的str和unicode合二为一了。

class

bytes

(

object

)

class

str

(

object

)

实际上,Python3中已经意识到之前的错误,开始明确的区分字符串与字节。因此Python3中的str已经是真正的字符串,而字节是用单独的bytes类来表示。也就是说,Python3默认定义的就是字符串,实现了对UNICODE的内置支持,减轻了程序员对字符串处理的负担。

#!/usr/bin/envpython

#-*-coding:utf-8-*-

a=

'你好'

b=

u'你好'

c=

'你好'

.encode(

'gbk'

)

print(type(a),len(a))

print(type(b),len(b))

print(type(c),len(c))

输出结果:

<

class

'

str

'>2

<

class

'

str

'>2

<

class

'

bytes

'>4

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    835

    浏览量

    54457
  • 字符串
    +关注

    关注

    1

    文章

    552

    浏览量

    20129
  • python
    +关注

    关注

    51

    文章

    4676

    浏览量

    83467
收藏 人收藏

    评论

    相关推荐

    新手Python学习该学Python2还是Python3

    Python3到底有何区别呢?1.性能Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。Py3.1
    发表于 04-17 16:11

    Python字符串与变量名

    字符串字面量与变量名的区别Python解释器如何判别字符串字面量与变量名字符串字面量的引号不是值的一部分
    发表于 05-22 07:23

    python2python3同时安装的详细步骤

    整理下python2python3同时安装详细步骤希望对大家有帮助坑已踩过(亲测可用!!!)
    发表于 10-27 09:31

    python2python3是如何互相切换的

    python2python3互相切换在本地有两个Python的版本:默认使用Python2.7:可以这样查看当前版本:如果要使用Python3
    发表于 07-12 07:53

    python3移植到嵌入式

    使用python3,经过一段时间的使用后发现python3这种语言使用起来确实是比之前使用的C语言方便多了,由于本人使用嵌入式linux较多,因此本人将python3移植到嵌入式,网
    发表于 12-22 07:33

    2.2 python字符串类型

    ,不能一单一双!Python支持字符类型,单字符Python也是作为一个
    发表于 02-17 17:12

    请问有没有大佬在rv1126 buildroot上使用python3的这些插件

    通过buildroot的menuconfig打开python3之后,可以成功编译,烧录到板子里面,python3也可以正常使用。看了下buildroot的menuconfigpython3
    发表于 11-03 15:58

    Python程序员必须掌握从Python2Python3的转型

    本书的目标读者是那些正在使用 Python,又想熟悉 Python 3 的程序员。如果你懂 Python2,但是想迁移到 Python 3.4 或者更新的版本,也没问题。
    发表于 09-14 10:54 10次下载

    python2python3问题的分析

    这个问题困扰了我很久,也是在一次偶然的机会解决了。现在就与大家分享一下,对于又想用python2又想用python3的小伙伴可以看看。 其实,这个方法也是挺简单的。我使用的是python2
    发表于 11-28 10:01 897次阅读

    python3如何取出重复3次的字符串保存为3列

    本文档的主要内容详细介绍的是python3如何取出重复3次的字符串保存为3列详细资料免费下载C语言资料说明。
    发表于 11-16 16:17 4次下载

    Python2python3的八个主要区别

    python这门语言中有两个重要的版本,一个是python2,一个是python3
    的头像 发表于 01-19 17:27 1.3w次阅读

    python2python3到底有什么区别

    几乎所有的python2 程序都需要一些修改才能正常的运行在python3 的环境下。为了简化这个转换过程, Python3 自带了一个2to3 的实用脚本。这个脚本会将python2
    发表于 09-16 15:42 4次下载
    <b class='flag-5'>python2</b>与<b class='flag-5'>python3</b>到底有什么区别

    2.2 python字符串类型

    双引号,不能一单一双!Python支持字符类型,单字符Python中也是作为一个字符串使用
    的头像 发表于 02-17 17:08 1230次阅读

    Python字符编码转换

    UNICODE字符串可以与任意字符编码的字节进行相互转换,如图: 那么大家很容易想到一个问题,就是不同的字符编码的字节可以通过Unicode相互转换吗?答案是肯定的。 Python2
    的头像 发表于 07-05 16:25 827次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>字符</b>编码转换

    Python2Python3的差异

    : 在Python2中,print语句是一个关键字,而在Python3中,print函数被引入,必须使用括号。此外,Python3要求字符串必须使用括号括起来,而
    的头像 发表于 11-23 16:48 352次阅读