栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中str()、repr()、``的区别

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中str()、repr()、``的区别

str()函数和repr()函数都是将任意数据类型转换为字符类型,但是它们之间又有一些区别,网上以及一些书籍上大多数都是这样描述:

函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。

或者是:

str()函数得到的字符串可读性好,而repr()函数得到的字符串通常可以用来重新获得该对象。通常情况下obj==eval(repr(obj))这个等式是成立的。

事实上到目前为止我并不清楚repr()函数有什么特别的用途,但还是根据自己的理解写下以下笔记 。
  str()函数和repr()函数的使用示例:

>>> str(5)'5'>>> repr(5)'5'>>> str(type(5))"">>> repr(type(5))"">>> str(5)==repr(5)True>>> str(type(5))==repr(type(5))True

从上面的示例中并不能发现str()函数和repr()函数在使用上有什么区别,所以某种程度上str()函数和repr()函数的功能是有一定的重合性的。
  但如果我们将一个字符串值做为参数分别带入到两个函数中,结果就会不一样。

>>> str('abc')'abc'>>> repr('abc')"'abc'">>> str('abc')==repr('abc')False

上面的示例中可以看出,如果使用str()函数值来转换一个字符串变量,其值并不会发生改变。但如果换成repr()函数,则repr()函数会将原来值的字符串表示中的定界符引号也转换为字符串的一个组成部分。再看下面的例子:

>>> repr("abc")"'abc'">>> repr("'abc'")'"'abc'"'>>> repr('''"'abc'"''')''"\'abc\'"''

为了表达多出来的定界符,repr()函数最后使用了转义符“”。
  目前为止我只发现了str()函数和repr()函数在转换字符串时有这一点区别,其他在功能上似乎没有不同(或许是我的理解以及查阅的资料还不够全面,如有错误欢迎指正)。
  再为说一下``运算符(注意这不是两个单引号,而是键盘字母键区的数字键“1”前面的那个按键),这个运算符的作者跟repr()的作用其实是一模一样的,但只在python2版本中获得支持,在Python3中已经取消了这种用法。
  以下示例是在python2.7.13中进行的演示。

>>> repr('abc')"'abc'">>> `'abc'`"'abc'"

以下示例是在Python3.6.0中进行的演示。

>>> repr('abc')"'abc'">>> `'abc'`
  File "", line 1
    `'abc'`
    ^
SyntaxError: invalid syntax
参考资料

《Python核心编程》(第二版) 人民邮电出版社出版发行



作者:无聊的IT
链接:https://www.jianshu.com/p/731bd96e2c63


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/224619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号