參考資料: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