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