>>a=1>>>a+""---------------------------------------------------------------------------TypeErrorTraceback(" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python使用str & repr轉換字符串

系統(tǒng) 1938 0

可能比較 low 還是記錄一下:

str 和 repr的使用過程

  1. str 是一個類型 (int, long 類似), 同樣她也可以作為一個工廠方法 實例一個 string
  2. repr 是python 內置的函數, 用于保留一個 打印值在python 代碼片段里的真實狀態(tài)

好,以上全是廢話

            
>>> a = 1
>>> a + ""
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)

            
               in 
              
                ()
----> 1 a + ""

TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> a = 1
>>> repr(a) + ""


              
            
          

可以看到, 我們可以通過使用 str 和 repr 來轉換字符串

但是,str 只能提供一個 元string來做轉換, 不可以是一個變量(她不具備執(zhí)行變量的能力)

repr 是一個函數, 所以實際上是傳參, 可以是變量和string

好多人都知道str()能把123數字轉成字符串,python里的str()甚至還能把列表、字典等對象轉成字符串。這都好理解,可是一旦把str()和repr()放在一起,大家就全都不淡定了-_-!

來看一段代碼,仍是在IDLE里交互:

            
  >>> str('hello')
  'hello'
  >>> repr('hello')
  "'hello'"

  >>> str('你好')
  '\xc4\xe3\xba\xc3'
  >>> repr('你好')
  "'\\xc4\\xe3\\xba\\xc3'"


          

先看前兩句:英文的'hello'在str()后仍是'hello',可是在repr()后就變成了"'hello'"。這就說明,str()返回的就是字符串本身,而repr()雖然返回的也是字符串,但它是一個標準字符串,官方解釋比較繞,我來解釋下吧。repr是representation及描述的意思,不是對人的描述,而是對python機器的描述,也就是它會將某物返回一個它在python中的描述。說人話:repr(obj)告訴我們obj這個變量在背地里是什么樣子,在背地里是怎么被python處理被python"玩弄"的。

在python里,我們總會被眼睛欺騙。編輯器里顯示的東西,并不總是它原本的面貌。python為了方便,總是表面上一套,背地里又一套。

再來理解后兩句:中文的'你好'在str()后變成了編碼' \xc4\xe3\xba\xc3' ,在repr()后變成了 "'\xc4\xe3\xba\xc3 '"。`都加上了轉移符變成\,相當于把字符串中的內容都“標準化”了。至于'變成"`只是為了說明repr()返回的是一個經過處理的新字符串。

print后的str()和repr()

來看代碼:

            
  >>> print str('你好')
  你好
  >>> print repr('你好')
  '\xc4\xe3\xba\xc3'

          

之前str('你好')顯示的是'\xc4\xe3\xba\xc3',而一經過print,就變成了正確的'你好'。上面說過了,命令行里直接輸入一個變量,顯示的是它在python后臺存儲的數據;而用print出來的東西,會顯出出盡量友好、讓人能看懂的東西。
理解了這個,對print這兩個結果的不同,也就全然理解了。然后也就放棄print作為考據的心了。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国内精品久久久久丫网址 | 一级特黄高清完整大片 | www.夜夜骑 | 欧洲成人爽视频在线观看 | 国产一区曰韩二区欧美三区 | 狠狠丁香激情久久综合 | 99热视热频这里只有精品 | 午夜亚洲精品久久久久久 | yellow中文字幕久久网 | 一二三区| 国产亚洲精 | 久久99国产综合精品 | 四虎影视久久久免费 | www.免费视频 | 欧美亚洲天堂 | 免费久久 | 国产免费午夜a无码v视频 | 9久9久女女热精品视频免费观看 | 中文字幕在线视频观看 | 久草在线新免费 | 国产va| 看日本真人一一级特黄毛片 | 久久久久夜夜夜精品国产 | japanese成人| 免费看欧美毛片大片免费看 | 国产欧美日韩亚洲精品区2345 | 在线亚洲国产精品区 | 国产精品27页 | 亚洲国产成人久久精品影视 | 亚洲一级毛片免观看 | 成年午夜视频免费观看视频 | 米奇7777狠狠狠狠视频影院 | 色偷偷91综合久久噜噜 | 69网站在线观看 | 91精东果冻蜜桃星空麻豆 | 狠色狠色狠狠色综合久久 | 精品亚洲成a人在线播放 | 国产精品亚洲欧美一级久久精品 | 久久福利青草免费精品 | 亚洲你xx我xx网站 | 国产成年网站 |