內(nèi)置的format()方法把指定值格式化為指定格式。
format()方法類似于String格式方法。在內(nèi)部,這兩種方法都調(diào)用對象的__format __()方法。
內(nèi)置format()方法是內(nèi)部使用__format __()格式化對象的底層實現(xiàn),而字符串format()是能夠?qū)Χ鄠€對象字符串執(zhí)行復雜格式化操作的高級實現(xiàn)。
format()的語法為:
format(value[, format_spec])
format()方法采用兩個參數(shù):
value -需要格式化的值
format_spec-有關如何設置值格式的規(guī)范。
格式說明符可以采用以下格式:
[[fill]align][sign][#][0][width][,][.precision][type] where, the options are fill ::= any character align ::= "<" | ">" | "=" | "^" sign ::= "+" | "-" | " " width ::= integer precision ::= integer type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
format()方法把指定值格式化為指定格式。
# d,f和b是類型 # 整數(shù) print(format(123, "d")) # 浮點參數(shù) print(format(123.4567898, "f")) # 二進制參數(shù) print(format(12, "b"))
運行該程序時,輸出為:
123 123.456790 1100
# 整數(shù) print(format(1234, "*>+7,d")) # 浮點參數(shù) print(format(123.4567, "^-09.3f"))
運行該程序時,輸出為:
*+1,234 0123.4570
在這里,當格式化整數(shù)1234時,我們指定了格式化說明符* <+ 7,d。讓我們查看每個選項的意義:
* -是填充字符,用于在格式化后填充空白
> -這是右對齊選項,可將輸出字符串右對齊
+ -這是一個符號選項,用于強制對數(shù)字進行簽名(其左側(cè)帶有一個符號)
7-寬度選項可強制數(shù)字采用最小寬度7,其他空格將由填充字符填充
, -千位運算符在所有千位之間放置逗號。
d -它是類型選項,用于指定數(shù)字為整數(shù)。
格式化浮點數(shù)123.4567時,我們指定了格式說明符^ -09.3f。這些是:
^ -這是居中對齊選項,可將輸出字符串對齊到剩余空間的中心
--該符號選項僅強制使用負數(shù)來顯示符號
0-它是代替空白的字符。
9-使用width選項將數(shù)字的最小寬度設置為9(包括小數(shù)點,千位逗號和符號)
.3-精度運算符將給定浮點數(shù)的精度設置為3位
f -它是類型選項,用于指定數(shù)字為浮點數(shù)。
# 自定義__format __()方法 class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
運行該程序時,輸出為:
23
在這里,我們重寫了Person類的__format __()方法。
現(xiàn)在,它接受參數(shù)code> age以返回23。如果未指定格式,則返回None。
format()方法在內(nèi)部運行Person().__format__("age")返回23。