当前位置:首页 > Python > 正文

Python字符串格式化:format函数完全指南 | 入门教程

Python字符串格式化:format函数完全指南

学习使用Python强大的format函数进行字符串格式化的多种方法

为什么需要字符串格式化?

在Python编程中,字符串格式化是创建动态文本输出的关键技术。format函数提供了一种灵活、可读性强的方式来构建包含变量值的字符串,比传统的字符串拼接更加强大和易用。

format函数的优势:

  • 代码可读性更强
  • 支持多种数据类型
  • 提供丰富的格式化选项
  • 兼容Python 2.6+和Python 3.x

format函数基础

format函数的基本语法是在字符串中使用花括号{}作为占位符,然后调用format方法传入实际值:

# 基本用法示例
name = "Alice"
age = 28
print("我的名字是{},今年{}岁。".format(name, age))

# 输出:我的名字是Alice,今年28岁。

位置参数

通过位置索引指定参数顺序:

print("{1}比{0}大{2}岁".format("Alice", "Bob", 3))
# 输出:Bob比Alice大3岁

关键字参数

使用变量名作为占位符:

print("坐标: ({x}, {y})".format(x=5.3, y=-2.1))
# 输出:坐标: (5.3, -2.1)

数字格式化技巧

format函数提供了强大的数字格式化能力,包括控制小数位数、百分比、千位分隔符等。

浮点数格式化

pi = 3.1415926535

# 保留两位小数
print("π的值是: {:.2f}".format(pi))  # 输出: 3.14

# 带符号保留三位小数
print("温度变化: {:+.3f}°C".format(-2.5))  # 输出: -2.500°C

# 科学计数法
print("光速: {:.2e} m/s".format(299792458))  # 输出: 3.00e+08 m/s

整数格式化

population = 7823400

# 千位分隔符
print("城市人口: {:,}".format(population))  # 输出: 7,823,400

# 进制转换
print("二进制: {:b}".format(42))   # 101010
print("十六进制: {:X}".format(255)) # FF

# 补零
print("序号: {:05d}".format(23))  # 00023

文本对齐与填充

使用format函数可以轻松控制文本的对齐方式和填充字符。

对齐方式 语法 示例 输出
左对齐 {:<宽度} "{:<10}".format("Hi") Hi        
右对齐 {:>宽度} "{:>10}".format("Hi")         Hi
居中对齐 {:^宽度} "{:^10}".format("Hi")     Hi    
填充字符 {:填充字符^宽度} "{:*^10}".format("Hi") ****Hi****

高级格式化技巧

格式化日期

from datetime import datetime
now = datetime.now()
print("当前时间: {:%Y-%m-%d %H:%M:%S}".format(now))
# 输出示例: 2023-07-28 14:30:45

嵌套字段

# 动态设置格式
value = 12.34567
for precision in [1, 3, 5]:
    print("{:.{prec}f}".format(value, prec=precision))
# 输出:
# 12.3
# 12.346
# 12.34567

format函数 vs f-string

虽然Python 3.6+引入了更简洁的f-string,但format函数在以下情况仍然很有价值:

  • 需要兼容Python 3.6以下版本
  • 需要动态构建格式字符串
  • 格式化字符串需要复用或来自外部源
# format函数
name = "Alice"
age = 30
message = "姓名: {}, 年龄: {}".format(name, age)

# f-string
message = f"姓名: {name}, 年龄: {age}"

总结

Python的format函数提供了强大而灵活的字符串格式化功能:

  • 使用简单直观的{}占位符语法
  • 支持位置参数和关键字参数
  • 提供丰富的数字格式化选项(小数位、百分比、千分位等)
  • 灵活的文本对齐和填充控制
  • 兼容新旧Python版本

掌握format函数能让你更高效地构建复杂的字符串输出,编写更清晰、更易维护的Python代码。

Python字符串格式化教程 • 使用format函数创建动态字符串

发表评论