掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

Python中format格式化函数详解(定义、语法、参数、作用、用法)

在 Python 编程中,字符串格式化是一项基础而重要的技能。Python 提供了多种字符串格式化方式,如 % 运算符、str.format() 方法以及 f-string(Python 3.6+)。其中,str.format() 是一种功能强大、灵活度高的格式化方式,广泛用于构建动态字符串、格式化输出数据、拼接变量与文本等场景。

本文将围绕 str.format() 函数的定义、语法结构、参数使用方式、功能作用以及典型应用场景进行详细讲解,帮助开发者全面掌握这一实用的字符串格式化工具。

一、str.format() 的基本定义与作用

str.format() 是 Python 中 str 类的一个方法,用于将变量插入字符串中的指定位置,并按照指定格式进行输出。与传统的 % 格式化方式相比,format() 更加灵活,支持多种数据类型和格式控制。

  1. 主要作用

将变量插入字符串;

控制输出格式(如小数点位数、对齐方式、进制转换等);

实现动态字符串拼接;

提升代码可读性和可维护性。

  1. 语法结构

"字符串模板".format(参数1, 参数2, ...)

模板中使用 {} 作为占位符,format() 方法会依次将参数填入对应位置。

二、str.format() 的基本用法

  1. 按顺序填充变量

name = "Alice"
age = 25
print("我的名字是 {}, 年龄是 {}".format(name, age))
# 输出:我的名字是 Alice, 年龄是 25
  1. 指定索引填充变量

可以使用数字索引指定填充顺序,适合参数复用或调整顺序:

print("第0个参数是:{0},第1个参数是:{1}".format("Hello", "World"))
# 输出:第0个参数是:Hello,第1个参数是:World
  1. 使用关键字参数

通过关键字指定参数,提升可读性,适用于参数较多或顺序不固定的情况:

print("姓名:{name}, 年龄:{age}".format(name="Bob", age=30))
# 输出:姓名:Bob, 年龄:30
  1. 混合使用位置参数与关键字参数

可以同时使用位置参数和关键字参数,但位置参数必须在关键字参数之前:

print("{0} 和 {name} 都是程序员".format("Alice", name="Bob"))
# 输出:Alice 和 Bob 都是程序员

三、str.format() 的格式化语法与参数控制

str.format() 的强大之处在于其支持丰富的格式化选项,可以通过冒号 : 后跟格式说明符来控制输出样式。

  1. 控制数字格式

整数格式化: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
  1. 控制字符串格式

对齐方式:< 左对齐,> 右对齐,^ 居中对齐;

填充字符:使用 字符 填充空白;

宽度控制:使用数字指定最小宽度。

示例:

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** (居中并用 * 填充)
  1. 格式化日期时间

结合 datetime 模块,format() 可用于格式化日期和时间:

from datetime import datetime
now = datetime.now()
print("当前时间:{0:%Y-%m-%d %H:%M:%S}".format(now))
# 输出:当前时间:2025-04-05 12:30:45(根据实际时间变化)
  1. 格式化对象属性

可以使用 . 访问对象的属性进行格式化:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
p = Person("John", 28)
print("姓名:{0.name}, 年龄:{0.age}".format(p))
# 输出:姓名:John, 年龄:28
  1. 格式化字典

可以直接格式化字典中的键值:

data = {"name": "Alice", "age": 25}
print("姓名:{0[name]}, 年龄:{0[age]}".format(data))
# 输出:姓名:Alice, 年龄:25

四、str.format() 的进阶用法与技巧

  1. 嵌套格式化

可以在格式字符串中嵌套变量和格式控制:

print("{0:{1}}".format("Python", "^10"))  # 输出:  Python
  1. 格式化多行字符串

format() 也适用于多行字符串,常用于模板输出:

template = """姓名:{name}
年龄:{age}
城市:{city}"""
print(template.format(name="Alice", age=25, city="北京"))

输出:

姓名:Alice
年龄:25
城市:北京
  1. 格式化时使用函数或表达式

可以在 format() 中使用函数、表达式,甚至对象:

print("结果是:{0}".format(2 ** 10))  # 输出:结果是:1024

五、str.format() 的典型应用场景

  1. 动态生成日志信息

在日志系统中,format() 可用于动态插入变量,生成结构化日志:

log = "[{level}] {time}: {message}".format(
    level="INFO",
    time="2025-04-05 10:00:00",
    message="用户登录成功"
)
print(log)
# 输出:[INFO] 2025-04-05 10:00:00: 用户登录成功
  1. 生成用户提示信息

在用户交互界面中,format() 可以用于生成个性化提示:

user = "admin"
print("欢迎回来,{}!".format(user))  # 输出:欢迎回来,admin!
  1. 数据展示与报表生成

在数据分析、报表生成等场景中,format() 可以实现整齐的输出格式:

name = "张三"
score = 92.5
print("{0:10} | {1:5.2f}".format(name, score))
# 输出:张三       | 92.50
  1. 构建 SQL 查询语句

虽然不推荐直接拼接 SQL 语句(存在注入风险),但在非数据库交互场景中,format() 可用于构建查询语句:

query = "SELECT * FROM users WHERE id = {id}".format(id=123)
print(query)  # 输出:SELECT * FROM users WHERE id = 123

Python中format格式化函数详解(定义、语法、参数、作用、用法)

str.format() 是 Python 中一个非常强大、灵活的字符串格式化方法,它不仅支持位置参数、关键字参数,还支持丰富的格式化选项,如数字格式、字符串对齐、日期格式等,是构建动态字符串、生成结构化输出的重要工具。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 航班订票查询

    通过出发地、目的地、出发日期等信息查询航班信息。

    通过出发地、目的地、出发日期等信息查询航班信息。

  • 火车订票查询

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

  • 车辆过户信息查询

    通过车辆vin码查询车辆的过户次数等相关信息

    通过车辆vin码查询车辆的过户次数等相关信息

  • 银行卡五元素校验

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

  • 高风险人群查询

    查询个人是否存在高风险行为

    查询个人是否存在高风险行为

0512-88869195
数 据 驱 动 未 来
Data Drives The Future