内置的format()方法把指定值格式化为指定格式。
format()方法类似于String格式方法。在内部,这两种方法都调用对象的__format __()方法。
内置format()方法是内部使用__format __()格式化对象的底层实现,而字符串format()是能够对多个对象字符串执行复杂格式化操作的高级实现。
format()的语法为:
format(value[, format_spec])
format()方法采用两个参数:
value -需要格式化的值
format_spec-有关如何设置值格式的规范。
格式说明符可以采用以下格式:
[[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是类型 # 整数 print(format(123, "d")) # 浮点参数 print(format(123.4567898, "f")) # 二进制参数 print(format(12, "b"))
运行该程序时,输出为:
123 123.456790 1100
# 整数 print(format(1234, "*>+7,d")) # 浮点参数 print(format(123.4567, "^-09.3f"))
运行该程序时,输出为:
*+1,234 0123.4570
在这里,当格式化整数1234时,我们指定了格式化说明符* <+ 7,d。让我们查看每个选项的意义:
* -是填充字符,用于在格式化后填充空白
> -这是右对齐选项,可将输出字符串右对齐
+ -这是一个符号选项,用于强制对数字进行签名(其左侧带有一个符号)
7-宽度选项可强制数字采用最小宽度7,其他空格将由填充字符填充
, -千位运算符在所有千位之间放置逗号。
d -它是类型选项,用于指定数字为整数。
格式化浮点数123.4567时,我们指定了格式说明符^ -09.3f。这些是:
^ -这是居中对齐选项,可将输出字符串对齐到剩余空间的中心
--该符号选项仅强制使用负数来显示符号
0-它是代替空白的字符。
9-使用width选项将数字的最小宽度设置为9(包括小数点,千位逗号和符号)
.3-精度运算符将给定浮点数的精度设置为3位
f -它是类型选项,用于指定数字为浮点数。
# 自定义__format __()方法 class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
运行该程序时,输出为:
23
在这里,我们重写了Person类的__format __()方法。
现在,它接受参数code> age以返回23。如果未指定格式,则返回None。
format()方法在内部运行Person().__format__("age")返回23。