文章目录
- f-string 的 {} 里不仅能放变量,还能直接写表达式并计算结果,省去额外定义变量的步骤。 num = 15 price = 8 # 计算总价 print(f’【{num}】个橙子,每个【{price}】元,总共要花【{num * price}】元’) # 输出:【15】个橙子,每个【8】元,总共要花【120】元
- 想要从字典里取值并格式化输出,用 f-string 可以一步到位,不用写多层索引。 student = {“name”: “小明”, “score”: 95} print(f’学生【{student[“name”]}】的数学成绩是【{student[“score”]}】分’) # 输出:学生【小明】的数学成绩是【95】分
- 如果要输出多行内容,用小括号 () 把多个 f-string 包起来就行,不用写一堆换行符拼接。 name = “小红” age = 22 hobby = “画画” msg = ( f’姓名:{name}n’ f’年龄:{age}n’ f’爱好:{hobby}’ ) print(msg) # 输出: # 姓名:小红 # 年龄:22 # 爱好:画画
- 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】
- 如果想在字符串里显示 {},只需要写两个 {{}} 就行;单引号里嵌套单引号,用反斜杠 转义。 # 显示 {} 符号 print(f’f-string 使用 {{}} 来包裹变量’) # 输出:f-string 使用 {} 来包裹变量 # 转义单引号 print(f’他说自己真的很’牛”) # 输出:他说自己真的很’牛’
- 通过 {变量:.nf} 的格式,可以轻松控制浮点数的小数位数,n 就是要保留的位数。 pi = 3.1415926 print(f’保留两位小数:{pi:.2f}’) # 输出:保留两位小数:3.14 print(f’保留四位小数:{pi:.4f}’) # 输出:保留四位小数:3.1416
- 用 {变量: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
- 通过 >、<、^ 分别可以实现字符串的右对齐、左对齐和居中对齐,搭配宽度数值效果更好。 s = “Python” print(f’右对齐:{s:>10}’) # 输出:右对齐: Python print(f’左对齐:{s:<10}’) # 输出:左对齐:Python print(f’居中对齐:{s:^10}’) # 输出:居中对齐: Python
- 结合 datetime 模块,f-string 可以按照指定格式输出日期和时间,非常方便。 import datetime now = datetime.datetime.now() # 格式:年-月-日 时:分:秒 print(f’当前时间:{now:%Y-%m-%d %H:%M:%S}’) # 输出示例:当前时间:2025-08-20 15:30:00
- 想要用 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 三种字符串格式化方法对比
- 三、f-string 超实用用法汇总
- 1. 直接计算表达式
- 2. 快速读取字典值
- 3. 轻松格式化多行字符串
- 4. 直接调用函数
- 5. 转义大括号和引号
- 6. 格式化浮点数
- 7. 设置输出宽度
- 8. 字符串对齐
- 9. 格式化日期时间
- 10. 格式化自定义对象
- 四、重要提醒
有小伙伴在看我之前写的 Python 实用技巧文章时,发现代码里频繁出现 f'{}' 这种写法,跑来问我这是什么 “黑科技”。其实这就是 Python 里超好用的 f-string 字符串格式化方法!今天就给大家详细拆解 f-string 的用法,保证新手也能一看就会。
f-string 是 Python 3.6 及以上版本才支持的字符串格式化新语法。它的使用门槛极低,只需要在字符串前面加一个前缀 f,再把要插入的变量或表达式放进 {} 中就行。相比传统格式化方法,f-string 更快、更简洁、可读性更强,还不容易出错。举个简单例子,想要控制浮点数的小数位数,直接在 {} 里写 {变量:格式说明符} 即可,比如 f'{num:.2f}' 就是保留两位小数。
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 的 10 个常见用法,每个用法都配了示例代码,直接复制就能跑。
f-string 的 {} 里不仅能放变量,还能直接写表达式并计算结果,省去额外定义变量的步骤。
num = 15
price = 8
# 计算总价
print(f'【{num}】个橙子,每个【{price}】元,总共要花【{num * price}】元')
# 输出:【15】个橙子,每个【8】元,总共要花【120】元
想要从字典里取值并格式化输出,用 f-string 可以一步到位,不用写多层索引。
student = {"name": "小明", "score": 95}
print(f'学生【{student["name"]}】的数学成绩是【{student["score"]}】分')
# 输出:学生【小明】的数学成绩是【95】分
如果要输出多行内容,用小括号 () 把多个 f-string 包起来就行,不用写一堆换行符拼接。
name = "小红"
age = 22
hobby = "画画"
msg = (
f'姓名:{name}n'
f'年龄:{age}n'
f'爱好:{hobby}'
)
print(msg)
# 输出:
# 姓名:小红
# 年龄:22
# 爱好:画画
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】
如果想在字符串里显示 {},只需要写两个 {{}} 就行;单引号里嵌套单引号,用反斜杠 转义。
# 显示 {} 符号
print(f'f-string 使用 {{}} 来包裹变量')
# 输出:f-string 使用 {} 来包裹变量
# 转义单引号
print(f'他说自己真的很'牛'')
# 输出:他说自己真的很'牛'
通过 {变量:.nf} 的格式,可以轻松控制浮点数的小数位数,n 就是要保留的位数。
pi = 3.1415926
print(f'保留两位小数:{pi:.2f}') # 输出:保留两位小数:3.14
print(f'保留四位小数:{pi:.4f}') # 输出:保留四位小数:3.1416
用 {变量: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
通过 >、<、^ 分别可以实现字符串的右对齐、左对齐和居中对齐,搭配宽度数值效果更好。
s = "Python"
print(f'右对齐:{s:>10}') # 输出:右对齐: Python
print(f'左对齐:{s:<10}') # 输出:左对齐:Python
print(f'居中对齐:{s:^10}') # 输出:居中对齐: Python
结合 datetime 模块,f-string 可以按照指定格式输出日期和时间,非常方便。
import datetime
now = datetime.datetime.now()
# 格式:年-月-日 时:分:秒
print(f'当前时间:{now:%Y-%m-%d %H:%M:%S}')
# 输出示例:当前时间:2025-08-20 15:30:00
想要用 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字符串格式化内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- Python 的格式化字符串(f-string)的基本用法详解
- python中f-string的基本用法
- python中f字符串f-string用法详解
- python语法学习print中f-string用法示例
- python3格式化字符串 f-string的高级用法(推荐)
- 一文了解python 3 字符串格式化 F-string 用法