Python的字符串格式化 %r %s


 

格式符是為了給真實值預留位置,控制顯示的格式。

格式符可以包含有一個類型碼,用以控制顯示的類型,如下:

%s    字符串 (采用str()的顯示)

%r    字符串 (采用repr()的顯示)

%c    單個字符

%b    二進制整數

%d    十進制整數

%i    十進制整數

%o    八進制整數

%x    十六進制整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

 

%%    字符"%"

補充:%i%d都是表示有符號十進制整數,但%i可以自動將輸入的八進制(或者十六進制)轉換為十進制,而%d則不會進行轉換。

補充 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出來的值是給機器看的,括號中的任何內容出來后都是在它之上再加上一層引號。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM