跳到主要内容

Python format() 函数

format() 方法返回给定值的格式化表示,由格式说明符控制。

示例

value = 45

# 将整数格式化为二进制
binary_value = format(value, 'b')
print(binary_value)

# 输出:101101

format() 语法

它的语法是:

format() 参数

format() 函数接受两个参数:

  • value - 需要格式化的值
  • format_spec - 值应该如何格式化的规范。

格式说明符可以是以下格式:

其中,选项包括
fill ::= 任何字符
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= 整数
precision ::= 整数
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

访问这些链接以了解更多关于 格式类型对齐 的信息。

format() 返回值

format() 函数返回给定值的格式化表示,由格式说明符指定。

示例 1:使用 format() 进行数字格式化

# d, f 和 b 是类型
# 整数
print(format(123, "d"))

# 浮点数参数
print(format(123.4567898, "f"))

# 二进制格式
print(format(12, "b"))

输出

123
123.456790
1100

示例 2:使用填充、对齐、符号、宽度、精度和类型进行数字格式化

# 整数
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 - 它是宽度选项,设置数字的最小宽度为 9(包括小数点、千位逗号和符号)
  • .3 - 它是精度运算符,将给定浮点数的精度设置为 3 位
  • f - 它是类型选项,指定数字是浮点数。

示例 3:通过重写 format() 使用 format()

# 自定义 __format__() 方法
class Person:
def __format__(self, format):
if(format == 'age'):
return '23'
return 'None'

print(format(Person(), "age"))

输出

23

这里,我们重写了类 Person__format__() 方法。

它现在接受一个 format 参数,并在等于 'age' 时返回 23。如果没有指定格式,则返回 None

format() 函数在内部运行 Person().__format__("age") 以返回 23。

内置 format() 与字符串 format()

format() 函数与 字符串 format 方法相似。内部上,这两种方法都调用对象的 __format__() 方法。

虽然内置的 format() 函数是使用 __format__() 内部实现对象格式化的低级实现,但字符串 format() 是高级实现,也能对多个对象字符串执行复杂的格式化操作。