1. 程式人生 > >str和repr的區別

str和repr的區別

Python列印值的時候會保持該值在Python程式碼中的狀態,不是使用者所希望看到的狀態。而使用print列印值則不一樣,print打印出來的值是使用者所希望看到的狀態。 
例如:

>>> "Hello, world!"
'Hello, world!'   # Python打印出來的值是給python理解的,這裡python理解為字串,所以帶著引號
>>> 1000L         # python理解為Long型的數字,所以它打印出來的時候也帶著字尾L
1000L
>>> print "Hello, world!"    # 列印一個字串,給使用者看的,所以不帶引號
Hello, world!
>>> print 1000L              # 使用者看到的當然是一個數字1000,而不是字串1000L
1000

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

  • str

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

    >>> print str("Hello,  world!")
    Hello,  world!            
    >>> print str(1000L)
    1000                         
    >>> str("Hello, world!")
    'Hello, world!'               # 字串轉換之後仍然是字串
    >>> str(1000L)
    '1000'
    
  • repr()

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

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

總而言之,str出來的值是給人看的字串,repr出來的值是給機器看的,括號中的任何內容出來後都是在它之上再加上一層引號。

文章轉載自:http://blog.csdn.net/u013961718