Python中的format()函数
普通格式化方法
(%s%d)生成格式化的字符串,其中s是一個(gè)格式化字符串,d是一個(gè)十進(jìn)制數(shù);
格式化字符串包含兩部分:普通的字符和轉(zhuǎn)換說明符(見下表),將使用元組或映射中元素的字符串來替換轉(zhuǎn)換說明符;
如果d是元組的話,必須與s中的轉(zhuǎn)換說明符個(gè)數(shù)一致;
如果d是dict的話,每個(gè)轉(zhuǎn)換說明符都必須與dict中一個(gè)有效的鍵名相關(guān)聯(lián).
在%字符和轉(zhuǎn)換字符之間,可以出現(xiàn)以下修飾符,并且只能按照以下順序出現(xiàn),
-
位于括號中的一個(gè)鍵名,用于從dict中獲取這個(gè)key對應(yīng)的值,如果不存在key,則引發(fā)異常;
-
下面中的一個(gè)或者多個(gè):
- -,左對齊標(biāo)志,默認(rèn)為右對齊;
- +,表示應(yīng)該包含數(shù)字的正負(fù)號;
- 0,表示用0來填充;
-
指定最小自動寬度的數(shù)字.轉(zhuǎn)換后的值將被打印在至少為這個(gè)寬度的字符串中,并且在左邊填充空格至滿字段寬(如果指定了-標(biāo)志,則在右邊填充);(如果字符串本身的長度大于指定寬度,則這個(gè)寬度就沒用啦).
-
一個(gè)小數(shù)點(diǎn),用于按照精度分割字段寬度;
-
一個(gè)數(shù)字,指定要打印字符串中最大字符個(gè)數(shù),浮點(diǎn)數(shù)中小數(shù)點(diǎn)之后的位數(shù)或整數(shù)的最小位數(shù);
-
*用于任意寬度的字段中替換數(shù)字.如果存在,寬度將從元組的下一項(xiàng)開始讀取;(有點(diǎn)暈啊- -,結(jié)合下面代碼看就容易理解了)
高級字符串格式化
字符串的format()函數(shù),該方法收集位置參數(shù)和關(guān)鍵字參數(shù)的任意集合,并使用它們的值來替換字符串中的占位符;
形式為{n}(n為整數(shù))的占位符將被format()方法第n個(gè)參數(shù)所代替;
形式為{name}的占位符將被參數(shù)中為name的參數(shù)所替代;
如果要用format()輸出{xx},必須使用{{xx}},否則會因?yàn)檎也坏綄?yīng)的參數(shù)值而報(bào)錯(cuò);
可以指定格式說明符,對輸出進(jìn)行更加精確地控制.
給每個(gè)占位符添加可選的格式說明符號,如{name:format_spec}.這種說明符可指定列寬,小數(shù)位和對齊方式.
一般格式[fill,align,sign,0,width,.precision,type],每一處都是可選的.
- fill:是一個(gè)可選的填充字符,用于填充空白,默認(rèn)為空格;
- align,對齊方式.<,>,^分別代表左,右,居中對齊,默認(rèn)為右對齊;
- sign,取值為:
+,所有數(shù)字簽名都要加上符號;
-,默認(rèn)值,只在負(fù)數(shù)簽名加符號;
空格,在正數(shù)前面加上一個(gè)空格; - 0,在寬度前面加0表示用0來填充數(shù)值前面的空白;
- width,寬度;
- .precision,精度的位數(shù);
- type,數(shù)據(jù)類型,如d(整數(shù)),s(字符串)等
某些情況下,可能只是要格式化對象的str()或repr()表示,需要繞過__format__()方法.為此,可以在格式說明符前面添加!r或!s說明符,如果不懂見下面代碼.
總而言之,將format()里面的參數(shù)視為一個(gè)正常的參數(shù),這個(gè)對象該有的屬性在字符串(s.format()中的 s )里面也能使用!!!
總結(jié)
以上是生活随笔為你收集整理的Python中的format()函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python连接oracle导出数据文件
- 下一篇: python中的ord函数