Python中字符串表示str與repr
>>> "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)
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