+ -

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

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

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

    以上就是php小编整理的全部内容,希望对您有所帮助,更多相关资料请查看php教程栏目。

    热门下载

    更多