Python中format格式化函数详解(定义、语法、参数、作用、用法)
时间:2025-07-29
来源:互联网
在 Python 编程中,字符串格式化是一项基础而重要的技能。Python 提供了多种字符串格式化方式,如 % 运算符、str.format() 方法以及 f-string(Python 3.6+)。其中,str.format() 是一种功能强大、灵活度高的格式化方式,广泛用于构建动态字符串、格式化输出数据、拼接变量与文本等场景。
本文将围绕 str.format() 函数的定义、语法结构、参数使用方式、功能作用以及典型应用场景进行详细讲解,帮助开发者全面掌握这一实用的字符串格式化工具。
一、str.format() 的基本定义与作用
str.format() 是 Python 中 str 类的一个方法,用于将变量插入字符串中的指定位置,并按照指定格式进行输出。与传统的 % 格式化方式相比,format() 更加灵活,支持多种数据类型和格式控制。
主要作用
将变量插入字符串;
控制输出格式(如小数点位数、对齐方式、进制转换等);
实现动态字符串拼接;
提升代码可读性和可维护性。
语法结构
"字符串模板".format(参数1,参数2,...)
模板中使用 {} 作为占位符,format() 方法会依次将参数填入对应位置。
二、str.format() 的基本用法
按顺序填充变量
name="Alice"
age=25
print("我的名字是{},年龄是{}".format(name,age))
#输出:我的名字是Alice,年龄是25
指定索引填充变量
可以使用数字索引指定填充顺序,适合参数复用或调整顺序:
print("第0个参数是:{0},第1个参数是:{1}".format("Hello","World"))
#输出:第0个参数是:Hello,第1个参数是:World
使用关键字参数
通过关键字指定参数,提升可读性,适用于参数较多或顺序不固定的情况:
print("姓名:{name},年龄:{age}".format(name="Bob",age=30))
#输出:姓名:Bob,年龄:30
混合使用位置参数与关键字参数
可以同时使用位置参数和关键字参数,但位置参数必须在关键字参数之前:
print("{0}和{name}都是程序员".format("Alice",name="Bob"))
#输出:Alice和Bob都是程序员
三、str.format() 的格式化语法与参数控制
str.format() 的强大之处在于其支持丰富的格式化选项,可以通过冒号 : 后跟格式说明符来控制输出样式。
控制数字格式
整数格式化:d 表示十进制整数;
浮点数格式化:f 表示浮点数,可以指定小数点位数;
百分比格式化:% 可以将小数转换为百分比;
千分位分隔符:使用 , 表示千分位;
进制转换:b 表示二进制,o 表示八进制,x 表示十六进制(小写),X 表示大写十六进制。
示例:
print("整数:{0:d}".format(1000000))#输出:整数:1000000
print("浮点数:{0:.2f}".format(3.14159))#输出:浮点数:3.14
print("百分比:{0:.2%}".format(0.75))#输出:百分比:75.00%
print("千分位:{0:,}".format(1234567))#输出:千分位:1,234,567
print("二进制:{0:b}".format(10))#输出:二进制:1010
print("十六进制:{0:x}".format(255))#输出:十六进制:ff
控制字符串格式
对齐方式:< 左对齐,> 右对齐,^ 居中对齐;
填充字符:使用 字符 填充空白;
宽度控制:使用数字指定最小宽度。
示例:
print("{0:10}".format("Python"))#输出:Python(右对齐,总宽度10)
print("{0:<10}".format("Python"))#输出:Python(左对齐)
print("{0:^10}".format("Python"))#输出:Python(居中对齐)
print("{0:*^10}".format("Python"))#输出:**Python**(居中并用*填充)
格式化日期时间
结合 datetime 模块,format() 可用于格式化日期和时间:
fromdatetimeimportdatetime
now=datetime.now()
print("当前时间:{0:%Y-%m-%d%H:%M:%S}".format(now))
#输出:当前时间:2025-04-0512:30:45(根据实际时间变化)
格式化对象属性
可以使用 . 访问对象的属性进行格式化:
classPerson:
def__init__(self,name,age):
self.name=name
self.age=age
p=Person("John",28)
print("姓名:{0.name},年龄:{0.age}".format(p))
#输出:姓名:John,年龄:28
格式化字典
可以直接格式化字典中的键值:
data={"name":"Alice","age":25}
print("姓名:{0[name]},年龄:{0[age]}".format(data))
#输出:姓名:Alice,年龄:25
四、str.format() 的进阶用法与技巧
嵌套格式化
可以在格式字符串中嵌套变量和格式控制:
print("{0:{1}}".format("Python","^10"))#输出:Python
格式化多行字符串
format() 也适用于多行字符串,常用于模板输出:
template="""姓名:{name}
年龄:{age}
城市:{city}"""
print(template.format(name="Alice",age=25,city="北京"))
输出:
姓名:Alice
年龄:25
城市:北京
格式化时使用函数或表达式
可以在 format() 中使用函数、表达式,甚至对象:
print("结果是:{0}".format(2**10))#输出:结果是:1024
五、str.format() 的典型应用场景
动态生成日志信息
在日志系统中,format() 可用于动态插入变量,生成结构化日志:
log="[{level}]{time}:{message}".format(
level="INFO",
time="2025-04-0510:00:00",
message="用户登录成功"
)
print(log)
#输出:[INFO]2025-04-0510:00:00:用户登录成功
生成用户提示信息
在用户交互界面中,format() 可以用于生成个性化提示:
user="admin"
print("欢迎回来,{}!".format(user))#输出:欢迎回来,admin!
数据展示与报表生成
在数据分析、报表生成等场景中,format() 可以实现整齐的输出格式:
name="张三"
score=92.5
print("{0:10}|{1:5.2f}".format(name,score))
#输出:张三|92.50
构建 SQL 查询语句
虽然不推荐直接拼接 SQL 语句(存在注入风险),但在非数据库交互场景中,format() 可用于构建查询语句:
query="SELECT*FROMusersWHEREid={id}".format(id=123)
print(query)#输出:SELECT*FROMusersWHEREid=123
str.format() 是 Python 中一个非常强大、灵活的字符串格式化方法,它不仅支持位置参数、关键字参数,还支持丰富的格式化选项,如数字格式、字符串对齐、日期格式等,是构建动态字符串、生成结构化输出的重要工具。
以上就是php小编整理的全部内容,希望对您有所帮助,更多相关资料请查看php教程栏目。
-
Navigator.userAgent属性详解 时间:2025-07-29
-
HashMap底层实现原理和扩容机制 时间:2025-07-29
-
什么是git命令?git常用基本命令使用详细大全 时间:2025-07-29
-
git clone命令详解(参数、原理、示例、常见问题、注意事项) 时间:2025-07-29
-
Linux tail命令详解(定义、作用、用法) 时间:2025-07-29
-
Python中strip()函数和split()函数用法和区别 时间:2025-07-29
今日更新
-
米姆米姆哈家园岛怎么布置-家园岛设计技巧
阅读:18
-
巴别塔圣歌对话怎么选-传送门解谜正确选项顺序
阅读:18
-
幻塔协作挑战重量怎么过-单人通关技巧详细解析
阅读:18
-
逸剑风云决怎么获得清宵认同-清宵道长好感提升方法
阅读:18
-
原神鹤观岛火炬怎么点亮-鹤观岛火炬解谜详细
阅读:18
-
巴别塔圣歌钥匙配方怎么获得-钥匙制作方法详细说明
阅读:18
-
巴别塔圣歌透镜怎么获取-透镜获取方法详细
阅读:18
-
逃离方块悖论华容道怎么过-第一章相片碎片收集
阅读:18
-
荒野行动枪械怎么选-荒野行动主流武器操作
阅读:18
-
大航海时代传说烟雾炮怎么选-烟雾炮种类性能详细
阅读:18