python转义是什么意思_Python什么情况下会输出转义符
print '中國' #輸出:中國
print ['中國'] #輸出:['\xd6\xd0\xb9\xfa']
print {'中國':'中國'} #輸出: {'\xd6\xd0\xb9\xfa': '\xd6\xd0\xb9\xfa'}
請問一下為什么在list和dict打印出來是轉(zhuǎn)義字符?
可以認為一個是用的是str方法,目的是向終端顯示;一個用的repr方法,目的是把數(shù)據(jù)結(jié)構(gòu)和類型表達出來
這是 Python 2 特別討厭的一點,以至于我實在忍受不了寫了個 repl_py27 來繞過該問題。不過最終還是遷移到 Python 3 啦 =w=
Python 2 的世界是個 ASCII 的世界,unicode 是后來加的,所以使用 repr 顯示的時候是把所有非 ASCII 的字符轉(zhuǎn)義顯示的。你要直接把字符串寫出來的話,Python 2 就不會進行任何轉(zhuǎn)義了,于是在支持的終端上,中文就能正常顯示了。
注意 @socrates 說的是錯的。print 遇到非字符串時,會調(diào)用 str() 函數(shù)將對象轉(zhuǎn)成字符串再輸出:>>> class T(object):
... def __repr__(self):
... return ''
... def __str__(self):
... return ''
...
>>> print T()
而很多對象的 __str__ 方法是沒有定義的,于是 str() 函數(shù)改調(diào)用它的 __repr__ 方法。
又:Python 2 的字符串和 unicode 的 str() 輸出都是經(jīng)過轉(zhuǎn)義的。這也是我討厭 Python 2 的另一個重要原因:>>> u'中文'
u'\u4e2d\u6587'
>>> '中文'
'\xe4\xb8\xad\xe6\x96\x87'
玩蛇網(wǎng)文章,轉(zhuǎn)載請注明出處和文章網(wǎng)址:https://www.iplaypy.com/wenda/wd19803.html
相關(guān)文章 Recommend
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python转义是什么意思_Python什么情况下会输出转义符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql自动增长id 溢出_MySQL
- 下一篇: 工商银行etc黑名单怎么解除