亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Python中str()、repr()、``的區別

標簽:
Python

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

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

或者是:

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

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

>>> str(5)'5'>>> repr(5)'5'>>> str(type(5))"<class 'int'>">>> repr(type(5))"<class 'int'>">>> 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 "<stdin>", line 1
    `'abc'`
    ^
SyntaxError: invalid syntax

参考资料

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



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


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消