26【python】sprintf風格的字符串


參考資料:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting

 實例

s#!/bin/python

a = ("year:%d model:%s") % (2018, 'BMW X5')
print(a) #year:2018 model:BMW X5

可以看到用這種類似於c語言中的printf函數,實現了字符串拼接,這個在實際應用中很常見,比如打日志,比如輸出一段完整的內容,其中包含一些變量。

按照%出現的順序,依次和后面的參數對應起來,來實現字符串拼接。

 

以下是一些提示

提示1:

前面出現的%必須和后邊的參數個數保持一致,否則會報錯:TypeError: not all arguments converted during string formatting

 

提示2:

這里如果輸出%本身,需要用%來轉義。

a = ("%% year:%d model:%s") % (2018, 'BMW X5')

 

提示3:

支持的所有類型見表格:

表示 含義 備注
%d 整型  
%i 整型  
%u 整型 和%d一樣
%f 浮點數  
%F 浮點數  
%e 指數形式的整型  
%E 指數形式的整型  
%g 浮點數表示,精度太低,需要指數介入時會用到,e是小寫的  
%G 浮點數表示,精度太低,需要指數介入時會用到,e是大寫的  
%x 十六進制表示  
%X 十六進制表示  
 %c char類型  必須是單個字符,否則報錯 
%o 八進制 這里是字母o
%r 使用函數repr()來轉化后的string  
%s string類型,使用str()轉換后的值  
%a string,使用ascii(0函數轉換后的值  

以上是所有常用的類型。

 

對於%d,支持類似於%3d(3位整型),'% 8d','%08d'這樣的表示。

類似的%f,也是一樣的,支持%8.5f。

其它格式見鏈接:https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting


免責聲明!

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



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