一文详解Python中的f-string超全用法
作者:超人小子
有小伙伴在看我之前写的 Python 实用技巧文章时,发现代码里频繁出现 f'{}' 这种写法,跑来问我这是什么 “黑科技”。其实这就是 Python 里超好用的 f-string 字符串格式化方法!今天就给大家详细拆解 f-string 的用法,保证新手也能一看就会。
一、f-string 是什么?
f-string 是 Python 3.6 及以上版本才支持的字符串格式化新语法。它的使用门槛极低,只需要在字符串前面加一个前缀 f,再把要插入的变量或表达式放进 {} 中就行。相比传统格式化方法,f-string 更快、更简洁、可读性更强,还不容易出错。举个简单例子,想要控制浮点数的小数位数,直接在 {} 里写 {变量:格式说明符} 即可,比如 f'{num:.2f}' 就是保留两位小数。
二、Python 三种字符串格式化方法对比
Python 里常见的字符串格式化方法有三种,我们用同一个需求来对比:输出 【张三】今年【18】岁。
name = "张三"
age = 18
# 方法1:% 符号格式化(最古老)
print("【%s】今年【%d】岁" % (name, age)) # 输出:【张三】今年【18】岁
# 方法2:format() 函数格式化(Python3.0 新增)
print("【{}】今年【{}】岁".format(name, age)) # 输出:【张三】今年【18】岁
# 方法3:f-string 格式化(Python3.6 新增,强烈推荐)
print(f"【{name}】今年【{age}】岁") # 输出:【张三】今年【18】岁
对比下来就能发现,f-string 直接把变量写在字符串里,不用额外传参,代码看起来更直观。
三、f-string 超实用用法汇总
接下来给大家分享 f-string 的 10 个常见用法,每个用法都配了示例代码,直接复制就能跑。
1. 直接计算表达式
f-string 的 {} 里不仅能放变量,还能直接写表达式并计算结果,省去额外定义变量的步骤。
num = 15
price = 8
# 计算总价
print(f'【{num}】个橙子,每个【{price}】元,总共要花【{num * price}】元')
# 输出:【15】个橙子,每个【8】元,总共要花【120】元
2. 快速读取字典值
想要从字典里取值并格式化输出,用 f-string 可以一步到位,不用写多层索引。
student = {"name": "小明", "score": 95}
print(f'学生【{student["name"]}】的数学成绩是【{student["score"]}】分')
# 输出:学生【小明】的数学成绩是【95】分
3. 轻松格式化多行字符串
如果要输出多行内容,用小括号 () 把多个 f-string 包起来就行,不用写一堆换行符拼接。
name = "小红"
age = 22
hobby = "画画"
msg = (
f'姓名:{name}\n'
f'年龄:{age}\n'
f'爱好:{hobby}'
)
print(msg)
# 输出:
# 姓名:小红
# 年龄:22
# 爱好:画画
4. 直接调用函数
f-string 的 {} 里还能直接调用函数,函数的返回值会被自动填充到字符串里。
# 定义一个求两数之和的函数
def my_sum(x, y):
return x + y
a = 10
b = 20
print(f'【{a}】和【{b}】的和是【{my_sum(a, b)}】')
# 输出:【10】和【20】的和是【30】
5. 转义大括号和引号
如果想在字符串里显示 {},只需要写两个 {{}} 就行;单引号里嵌套单引号,用反斜杠 \ 转义。
# 显示 {} 符号
print(f'f-string 使用 {{}} 来包裹变量')
# 输出:f-string 使用 {} 来包裹变量
# 转义单引号
print(f'他说自己真的很\'牛\'')
# 输出:他说自己真的很'牛'
6. 格式化浮点数
通过 {变量:.nf} 的格式,可以轻松控制浮点数的小数位数,n 就是要保留的位数。
pi = 3.1415926
print(f'保留两位小数:{pi:.2f}') # 输出:保留两位小数:3.14
print(f'保留四位小数:{pi:.4f}') # 输出:保留四位小数:3.1416
7. 设置输出宽度
用 {变量:n} 可以指定输出内容的宽度,n 是宽度数值,不足的部分会用空格补齐。
# 打印 1-5 的平方和立方,指定宽度让排版更整齐
for i in range(1, 6):
print(f'{i:2} {i*i:3} {i*i*i:4}')
# 输出:
# 1 1 1
# 2 4 8
# 3 9 27
# 4 16 64
# 5 25 125
8. 字符串对齐
通过 >、<、^ 分别可以实现字符串的右对齐、左对齐和居中对齐,搭配宽度数值效果更好。
s = "Python"
print(f'右对齐:{s:>10}') # 输出:右对齐: Python
print(f'左对齐:{s:<10}') # 输出:左对齐:Python
print(f'居中对齐:{s:^10}') # 输出:居中对齐: Python
9. 格式化日期时间
结合 datetime 模块,f-string 可以按照指定格式输出日期和时间,非常方便。
import datetime
now = datetime.datetime.now()
# 格式:年-月-日 时:分:秒
print(f'当前时间:{now:%Y-%m-%d %H:%M:%S}')
# 输出示例:当前时间:2025-08-20 15:30:00
10. 格式化自定义对象
想要用 f-string 输出自定义类的对象,需要在类里定义 __str__() 或 __repr__() 方法。
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __repr__(self):
return f"《{self.title}》的作者是{self.author}"
book = Book("Python 编程:从入门到精通", "张三")
print(f'{book}')
# 输出:《Python 编程:从入门到精通》的作者是张三
四、重要提醒
划重点!划重点!划重点!f-string 只有在 Python 3.6 及以上版本中才能使用!如果你的 Python 版本过低,运行代码时会报错,记得先升级版本哦。
到此这篇关于一文详解Python中的f-string超全用法的文章就介绍到这了,更多相关Python f-string字符串格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
