1. 程式人生 > >Python中字符串表示str與repr

Python中字符串表示str與repr

error: int recent rep 數字 整型 機器 理解 ***

所有通過Python打印的字符串還是被引號括起來的。這是因為Python打印值的時候會保持該值在Python代碼中的狀態,而不是你希望用戶看到的狀態,如果使用print 語句,結果就不一樣了。

>>> "Hello,world"
'Hello,world' # Python打印出來的值是給python理解的,這裏python理解為字符串,所以帶著引號

>>> print "Hello,world"
Hello,world
>>>

****************************************************************************************************************

>>> 10000L
10000L # python理解為Long型的數字,所以它打印出來的時候也帶著後綴L

>>> print 10000L # 用戶看到的當然是一個數字1000,而不是字符串1000L

10000
>>>

str和repr實際就分別對應上述兩種顯示方式。

把值轉換為合理形式的字符串,給用戶看的。str實際上類似於int,long,是一種類型。

repr()

創建一個字符串,以合法python表達式的形式來表示值。repr()是一個函數。

這裏可以看到,長整型數10000L被轉換成了數字10000,而且在顯示給用戶的時候也是如此,當你想知道一個變量的值是多少時,可能會對它是整型還是長整型感興趣。

值被轉換為字符串的兩種機制。可以通過以下兩個函數來使用這兩種機制:一種是通過str函數,它會把值轉換為合理形式的字符串,以便用戶可以理解;另一個是通過repr函數,它會創建一個字符串,以合法的Python表達式的形式來表示值。

請看如下示例:

>>> print repr("Hello,world")
'Hello,world'
>>> print repr(1000L)
1000L
>>> print str("Hello,world")
Hello,world
>>> print str(1000L)

1000


repr(x) 也可以寫作`x`實現(註意,`是反引號,而不是單引號)。如果希望打印一個包含數字的句子,那麽反引號就很有用了。比如:

>>> temp = 42
>>> print "The temperature is " + temp
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print "The temperature is " + `temp`
The temperature is 42
>>>

>>> print "The temperature is " + str(temp)
The temperature is 42
>>> print "The temperature is " + repr(temp)
The temperature is 42
>>>

第一個print語句並不工作,那是因為不可以將字符串和數字進行相加。而第二個則可以正常工作,以為已經通過反引號將temp的值轉換成字符串“42”了。(當然也可以使用repr,得到相同的結果)

簡而言之,str,repr和反引號是將Python值轉換為字符串的3種方法。函數str讓字符串更容易閱讀,而repr(和反引號)則把結果字符串轉換為合法的Python表達式。str出來的值是給人看的字符串,repr出來的值是給機器看的,括號中的任何內容出來後都是在它之上再加上一層引號。






Python中字符串表示str與repr