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

    文章

    940

    浏览量

    54807
  • 字符串
    +关注

    关注

    1

    文章

    578

    浏览量

    20505
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84613
收藏 人收藏

    评论

    相关推荐

    新手Python学习该学Python2还是Python3

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

    python2python3同时安装的详细步骤

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

    python2python3是如何互相切换的

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

    python2python3问题的分析

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

    python字符串拼接方式了解

    ()方法拼接 用string模块的Template对象 例子: fruit1 = ‘apples’ fruit2 = ‘bananas’ fruit3 = ‘pears’ 要求: 输出字符串
    发表于 12-06 10:09 1032次阅读

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

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

    Python2python3的八个主要区别

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

    python2python3到底有什么区别

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

    什么是复制字符串Python如何复制字符串

    连续几篇文章都在写 Python 字符串,这出乎我的意料了。但是,有的问题,不写不行,特别是那种灵机一动想到的问题,最后你发现,很多人根本不懂却又误以为自己懂了。那就继续刨根问底,探究个明白吧
    发表于 11-25 10:32 3009次阅读

    2.2 python字符串类型

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

    python字符串有哪些特定方法

    python字符串序列操作也适用于列表和元组。 python字符串还有独有方法,即字符串对象的函数,其他对象不可调用,只有
    的头像 发表于 02-23 15:02 700次阅读

    Python检查字符串包含的方法

    Python 有多种处理字符串的方法。今天我们介绍如何检查一个字符串是否包含另一个字符串
    的头像 发表于 05-14 16:02 1.6w次阅读

    Python字符编码转换

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

    Python 如何判断字符串是否包含子

    方法 使用 字符串 对象的 find 方法,如果有找到子,就可以返回指定子字符串的出现位置,如果没有找到,就返回 -1 >> >
    的头像 发表于 11-02 10:55 483次阅读

    Python2Python3的差异

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