国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用str & repr轉換字符串

2020-01-04 17:23:14
字體:
來源:轉載
供稿:網友

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

str 和 repr的使用過程

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

好,以上全是廢話

>>> a = 1>>> a + ""---------------------------------------------------------------------------TypeErrorTraceback (most recent call last)<ipython-input-5-ebf3ab7f3a34> in <module>()----> 1 a + ""TypeError: unsupported operand type(s) for +: 'int' and 'str'>>> a = 1>>> repr(a) + ""

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

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

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作為考據的心了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南安市| 宽城| 漠河县| 且末县| 远安县| 合水县| 湘潭县| 武鸣县| 公主岭市| 兖州市| 工布江达县| 黄大仙区| 盐边县| 合山市| 四平市| 偏关县| 剑河县| 穆棱市| 奎屯市| 保定市| 阳山县| 昂仁县| 义马市| 托克逊县| 嫩江县| 阿瓦提县| 积石山| 华亭县| 田阳县| 黑龙江省| 定边县| 鱼台县| 隆德县| 南岸区| 博爱县| 武威市| 尼玛县| 措勤县| 平舆县| 乡宁县| 西城区|