万字长文,Python字符串格式化讲解("Python字符串格式化详解:万字长文深入浅出")
原创
一、Python字符串格式化简介
字符串格式化是编程中常见的需求,Python 提供了多种方法来进行字符串的格式化。合理使用这些格式化方法可以使代码更加清楚,输出的信息更加直观。本文将详细介绍 Python 中的字符串格式化方法。
二、老式字符串格式化方法
老式字符串格式化方法重点指的是使用百分号(%)进行格式化,这种方法在 Python 2 中广泛使用,但在 Python 3 中仍被保留。
2.1 百分号格式化基本用法
百分号格式化通过在字符串中插入百分号(%)和转换类型符号来实现。基本用法如下:
%操作符 转换类型 说明
%c 字符 单个字符
%s 字符串 字符串
%d 整数 十进制整数
%i 整数 十进制整数
%o 整数 八进制整数
%e 浮点数 科学计数法(小写e)
%E 浮点数 科学计数法(大写E)
%f 浮点数 定点描述
%g 浮点数 自动选择 %f 或 %e
%s 字符串 字符串
%x 整数 十六进制整数(小写x)
%X 整数 十六进制整数(大写X)
%% 百分号 百分号符号
示例代码:
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))
2.2 格式化宽度与精度
在百分号格式化中,可以指定宽度与精度,以控制输出格式。宽度用于指定最小输出宽度,精度用于指定浮点数的有效数字。
print("Price: %10.2f" % 35.5) # 输出宽度为10,精度为2
三、str.format()方法
str.format() 方法是 Python 3 中推荐使用的字符串格式化方法,它提供了更丰盈的格式化选项。
3.1 基本用法
str.format() 方法的基本用法如下:
"{[format_spec]}".format([args])
其中,format_spec 是格式化规范,args 是要格式化的参数。
3.2 格式化规范
格式化规范包括填充、对齐、宽度、精度和类型等。以下是一些常用的格式化规范:
[:][fill][align][width][.][precision][type]
填充、对齐和宽度是可选的,精度和类型是可选的,但至少需要有一个。
3.3 填充与对齐
填充字符和填充宽度可以用于控制文本的输出宽度。对齐方法有左对齐(默认)、右对齐和居中对齐。
print("{0:*^10}".format("Hello")) # 使用星号填充,宽度为10,居中对齐
3.4 宽度与精度
宽度用于指定输出的最小宽度,精度用于指定浮点数的有效数字。
print("{0:.2f}".format(3.14159)) # 精度为2
3.5 类型转换
str.format() 方法赞成多种类型转换,如下所示:
b 二进制整数
c 字符
d 十进制整数
e 科学计数法(小写e)
E 科学计数法(大写E)
f 浮点数
F 浮点数(与f相同,但在某些情况下会显示INF和NAN为大写)
g 自动选择 %f 或 %e
G 自动选择 %f 或 %E
h 十六进制整数
i 十进制整数
o 八进制整数
s 字符串
x 十六进制整数(小写x)
X 十六进制整数(大写X)
示例代码:
print("{0:b}".format(10)) # 输出二进制描述
四、f-string格式化
f-string 是 Python 3.6 中引入的一种新的字符串格式化方法,它使用 f 开头,并在字符串中直接嵌入表达式。
4.1 基本用法
基本用法如下:
f"字符串{表达式}字符串"
在 f-string 中,花括号内的表达式会被计算并格式化到字符串中。
4.2 表达式格式化
f-string 赞成多种格式化选项,如下所示:
{表达式[:格式化规范]}
格式化规范与 str.format() 方法类似。
4.3 示例
以下是一些使用 f-string 的示例:
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
五、总结
本文详细介绍了 Python 中的字符串格式化方法,包括老式百分号格式化、str.format() 方法和 f-string 格式化。合理使用这些方法可以使代码更加清楚,输出的信息更加直观。在实际编程中,建议使用 str.format() 方法和 f-string 格式化,出于它们提供了更丰盈的格式化选项,并且更加简洁易读。
这篇文章涵盖了 Python 字符串格式化的基本概念、老式百分号格式化、str.format() 方法和 f-string 格式化。文章中包含了丰盈的示例代码,可以帮助读者更好地懂得每种格式化方法的用法。