Python的字符串格式化 %r %s
阿新 • • 發佈:2017-12-30
nbsp 單個字符 給人 pytho 進制 ews 相同 () world
格式符是為了給真實值預留位置,控制顯示的格式。
格式符可以包含有一個類型碼,用以控制顯示的類型,如下:
%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出來的值是給機器看的,括號中的任何內容出來後都是在它之上再加上一層引號。
Python的字符串格式化 %r %s