本系列将会陆续整理分享一些的Python内置函数。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_built-in_functions
format(value, format_spec='')
-
参数说明:
-
value:是需要格式化的值; -
format_spec:字符串,用于定义值应该如何被格式化。函数会根据format_spec将值转换为一种“格式化”的字符串表示形式。其行为依赖于value的类型,大多数内置类型遵Format Specification Mini-Language(标准格式语法)。如果未提供format_spec,则默认为空字符串,通常效果与调用str(value)相同。
-
{:.2f}:表示将浮点数格式化为保留两位小数。 -
{:04d}:表示将整数格式化为至少4位数字,不足部分用0填充。 -
{:>10}:表示将值右对齐,总宽度为10个字符。
https://docs.python.org/3/library/string.html#formatspec
-
返回值:
# 未定义 __format__ 的自定义类
class MyClass: pass
obj = MyClass()
print(format(obj, "")) # 默认调用 str(obj),合法
print(format(obj, "spec")) # TypeError: 未实现 __format__
|
|
|
|
|
|
灵活性 |
|
|
|
|
|
下面是一些使用 format() 函数的示例:
-
示例 1:默认格式化
当format_spec是空字符串(“”)时,format()函数的行为类似于str(value)。
value = 123.456
print(format(value)) # 输出: "123.456"
print(str(value)) # 输出: "123.456"
-
示例 2:自定义格式化
Format Specification Mini-Language是Python中用于定义字符串格式化规则的一套语法规则,允许开发者通过特定的占位符和格式说明符,精确控制变量输出的格式。
# 格式化浮点数保留两位小数
print(format(3.14159, ".2f")) # 输出:'3.14'
# 格式化整数为十六进制
print(format(255, "x")) # 输出:'ff'
# 保留两位小数,右对齐,总宽度为20个字符,不足部分用0填充
print(format(12345, "0>20,.2f")) # 输出:'0000000000012,345.00'
# 格式化日期
from datetime import datetime
now = datetime.now()
print(format(now, "%Y-%m-%d %H:%M:%S")) # 输出: "2025-01-30 00:03:56"(格式化的日期和时间)
-
示例 3:自定义类的格式化
自定义类需显式实现__format__以支持非空格式说明符。
class Temperature:
def __init__(self, celsius):
self.celsius = celsius
def __format__(self, format_spec):
if format_spec == "f":
return f"{self.celsius * 9/5 + 32:.1f}°F"
else:
return f"{self.celsius}°C"
temp = Temperature(25)
print(format(temp, "f")) # 输出:'77.0°F'
print(format(temp, "")) # 输出:'25°C'


本篇文章来源于微信公众号: 码农设计师