字符串格式化在Python中用于美化输出,f-strings(推荐)、.format()和%运算符可插入变量并控制显示格式,包括精度、对齐及日期时间格式化。

字符串格式化在Python中,说白了,就是让你的输出更漂亮、更易读。它允许你将变量的值插入到字符串中,并控制它们的显示方式,比如精度、对齐方式等等。
字符串格式化技巧
使用 f-strings (Python 3.6+)
f-strings 是 Python 3.6 引入的一种简洁高效的字符串格式化方式。它通过在字符串前加上
f或
f前缀,并在字符串中使用花括号
{} 包裹变量或表达式来实现。name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")f-strings 的优势在于其可读性和简洁性。你可以在花括号内直接进行运算或调用函数:
立即学习“Python免费学习笔记(深入)”;
x = 10
y = 5
print(f"The sum of {x} and {y} is {x + y}.")使用 .format()
方法
.format()方法是 Python 2.6 引入的另一种字符串格式化方式。它通过在字符串中使用花括号
{} 作为占位符,并通过 .format()方法传入要插入的值。
name = "Bob"
age = 25
print("My name is {} and I am {} years old.".format(name, age))你可以使用索引来指定插入值的顺序:
print("My name is {1} and I am {0} years old.".format(age, name))或者使用关键字参数:
print("My name is {name} and I am {age} years old.".format(name="Charlie", age=40)).format()方法的功能非常强大,可以进行各种复杂的格式化操作。
使用 %
运算符 (Legacy)
%运算符是 Python 中最早的字符串格式化方式,类似于 C 语言中的
printf函数。虽然它仍然可用,但由于其可读性和灵活性较差,建议使用 f-strings 或
.format()方法。
name = "David"
age = 35
print("My name is %s and I am %d years old." % (name, age))其中,
%s用于字符串,
%d用于整数。
如何控制浮点数的精度?
在格式化浮点数时,你可能需要控制其精度。可以使用 f-strings 或
.format()方法来实现。
使用 f-strings:
pi = 3.1415926535
print(f"The value of pi is approximately {pi:.2f}.") # 输出 3.14使用
.format()方法:
pi = 3.1415926535
print("The value of pi is approximately {:.2f}.".format(pi)) # 输出 3.14:.2f表示保留两位小数。
如何进行对齐和填充?
字符串格式化还允许你控制字符串的对齐方式和填充字符。
使用 f-strings:
num = 42
print(f"{num: >4}") # 右对齐,总宽度为4,用空格填充
print(f"{num:0>4}") # 右对齐,总宽度为4,用0填充
print(f"{num: <4}") # 左对齐,总宽度为4,用空格填充
print(f"{num:^4}") # 居中对齐,总宽度为4,用空格填充使用
.format()方法:
num = 42
print("{: >4}".format(num)) # 右对齐,总宽度为4,用空格填充
print("{:0>4}".format(num)) # 右对齐,总宽度为4,用0填充
print("{: <4}".format(num)) # 左对齐,总宽度为4,用空格填充
print("{:^4}".format(num)) # 居中对齐,总宽度为4,用空格填充>表示右对齐,
<表示左对齐,
^表示居中对齐。
如何格式化日期和时间?
Python 的
datetime模块提供了强大的日期和时间处理功能。你可以使用字符串格式化来控制日期和时间的显示方式。
import datetime
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 输出 2023-10-27 10:30:00 (示例)strftime()方法使用各种格式化指令来控制日期和时间的显示。例如,
%Y表示年份,
%m表示月份,
%d表示日期,
%H表示小时,
%m表示分钟,
%s表示秒。
什么时候应该使用哪种格式化方法?
- f-strings: 推荐在 Python 3.6 及以上版本中使用,因为它简洁易读,性能也很好。
- .format(): 兼容性好,在较旧的 Python 版本中可以使用。
- % 运算符: 尽量避免使用,除非你正在维护旧代码。
总而言之,选择哪种方法取决于你的具体需求和 Python 版本。但是,掌握 f-strings 和
.format()方法是现代 Python 开发的必备技能。它们让你的代码更清晰,也更容易维护。











