
f-string,即格式化字符串常量(Formatted String Literals),是 Python 一种新的字符串格式化机制。只需在字符串前加上f前缀,就能在字符串中直接嵌入表达式,表达式的结果会被替换到相应位置。相比传统的百分号格式化和format()方法,f-string 的语法更加简洁明了,代码可读性更高。
这是 f-string 最基本的用法。将变量直接嵌入到 f-string 中,print函数会自动将变量值替换到对应的位置。例如:
name = "Alice"age = 25print(f"我的名字是{name},今年{age}岁。")
上述代码中,{name}和{age}是占位符,print函数执行时,会将变量name和age的值插入到字符串中,输出 “我的名字是 Alice,今年 25 岁。”
f-string 不仅支持嵌入变量,还能嵌入任意合法的 Python 表达式,包括算术运算、函数调用等。例如:
num1 = 10num2 = 5print(f"{num1} 和 {num2} 的和是 {num1 + num2}")def square(x):return x ** 2print(f"5的平方是 {square(5)}")
在第一个print语句中,嵌入了加法运算表达式num1 + num2;第二个print语句则调用了自定义函数square。
在处理数字时,我们常常需要对其进行格式化,如指定小数位数、千位分隔符等。f-string 提供了丰富的格式化选项。例如:
pi = 3.1415926print(f"圆周率保留两位小数:{pi:.2f}")amount = 1234567.89print(f"金额添加千位分隔符:{amount:,.2f}")
{pi:.2f}表示将pi格式化为保留两位小数的浮点数;{amount:,.2f}则表示在保留两位小数的同时,添加千位分隔符。
在输出表格或特定格式的文本时,字符串对齐非常重要。f-string 支持左对齐、右对齐和居中对齐。例如:
print(f"左对齐:{'-左对齐文本-':<20}")print(f"右对齐:{'-右对齐文本-':>20}")print(f"居中对齐:{'-居中对齐文本-':^20}")
<表示左对齐,>表示右对齐,^表示居中对齐,数字20指定了字符串的宽度。
f-string 支持嵌套使用,这在处理复杂数据结构或动态生成字符串时非常有用。例如:
info = {"name": "Bob","age": 30}print(f"他叫{f'{info['name']}'},今年{f'{info['age']}'}岁。")
通过嵌套 f-string,可以灵活地从字典中获取数据并进行格式化输出。
表达式语法:嵌入 f-string 的表达式必须是合法的 Python 表达式,否则会引发语法错误。
性能考量:虽然 f-string 简洁高效,但在循环中频繁使用复杂的 f-string 可能会影响性能。在这种情况下,可以考虑使用其他格式化方式。


