緊接著上一章節,這一章節我們聊聊怎樣添加具體格式化
就是指定替換字段的大小、對齊方式和特定的類型編碼,結構如下:
{fieldname!conversionflag:formatspec}
fieldname指定參數的一個數字或者關鍵字,后面可選.name或者[index]引用
conversionflag可以是r/s/a或者是在該值上對repr/str/ascii內置函數的一次調用
formatspec指定如何表示該值,如字段寬帶、對齊方式、補零、小數點精度等,并以一個可選的數據類型編碼結束
>>> '{0:10}={1:10}'.format ('abcde',1.234566789)
'abcde =1.234566789' >>> '{0:10}={1:3}'.format ('abcde',1.234566789)
'abcde =1.234566789'
>>> '{0:10}={1:3}'.format ('abcde',123456678.9)
'abcde =123456678.9'
>>> '{0:.format ('abcde',123456678.9)
'abcde =123456678.9' >>> '{0:>10}={1:3}'.format ('abcde',123456678.9)
' abcde=123456678.9'
>>> import sys
>>> '{0.platform:>10}={1:3}'.format (sys,123456678.9)
' win32=123456678.9'
上面舉了一些例子
{0:10}表示一個10字節寬的字段的參數
{0:<10}表示一個左對齊的10字節寬的字段的參數
{0:>10}表示一個右對齊的10字節寬的字段的參數
{0.platform}讀取sys模塊的屬性
下面再舉一些例子
>>> '{0:e},{1:.3e},{2:g}'.format (3.141592,3.141592,3.141592)
'3.141592e+00,3.142e+00,3.14159'
>>> '{0:f},{1:.2f},{2:06.2f}'.format (3.141592,3.141592,3.141592)
'3.141592,3.14,003.14'
>>>
{0:e}代表使用科學計數法來表示
{1:.3e}只保留三位小數的科學計數法來表示
{2:g}使用g來表示浮點數
{1:.2f}保留兩位小數的浮點數
{2:06.2f}六字節款的保留兩位小數不足寬度補零的字符串
除了上面的十進制,還支持八進制、十六進制
>>> '{0:X},{1:o},{2:b}'.format (255,255,255)
'FF,377,11111111'
>>> bin(255),int('11111111',2),0b11111111
('0b11111111', 255, 255)
還支持在format里面嵌入表達式,動態獲取
>>> '{0:f},{1:.2f},{2:06.2f}'.format (1/3,1/3,1/3)
'0.333333,0.33,000.33'