# 零基礎學python-7.7 字符串格式化方法(2)
緊接著上一章節,這一章節我們聊聊怎樣添加具體格式化
就是指定替換字段的大小、對齊方式和特定的類型編碼,結構如下:
{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'??
~~~
就說到這里,謝謝大家
- 前言
- 零基礎學python-7.1 python中的字符串簡介與常用函數
- 零基礎學python-7.2 字符串常量
- 零基礎學python-7.3 字符串的一般使用
- 零基礎學python-7.4 修改字符串實例總結
- 零基礎學python-7.5 文本解析
- 零基礎學python-7.6 字符串格式化表達式
- 零基礎學python-7.7 字符串格式化方法(1)
- 零基礎學python-7.7 字符串格式化方法(2)
- 輕松python文本專題-單獨處理字符串每個字符的方法匯總
- 輕松python文本專題-字符與字符值轉換
- 輕松python文本專題-判斷對象里面是否是類字符串(推薦使用isinstance(obj,str))
- 輕松python文本專題-字符串對齊
- 輕松python文本專題-去掉字符串前后空格
- 輕松python文本專題-拼接、合并字符串
- 輕松python文本專題-字符串逐字符反轉以及逐單詞反轉
- 輕松python文本專題-maketrans和translate
- 輕松python文本專題-字符串開頭或者結尾匹配