一文详解Python中的f-string超全用法

 更新时间:2026年02月07日 09:43:53   作者:超人小子  
f-string 是 Python 3.6 及以上版本才支持的字符串格式化新语法,它的使用门槛极低,只需要在字符串前面加一个前缀 f,再把要插入的变量或表达式放进 {} 中就行,本文给大家介绍详细介绍了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字符串格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyQt通过动画实现平滑滚动的QScrollArea

    PyQt通过动画实现平滑滚动的QScrollArea

    这篇文章主要为大家详细介绍了PyQt如何使用Qt的动画框架 QPropertyAnimation来实现平滑滚动的QScrollArea,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以学习一下
    2023-01-01
  • Python新手实现2048小游戏

    Python新手实现2048小游戏

    本文是一个Python新手编写的热门游戏2048的代码,使用Python3编写,基于控制台,对于Python新手们熟悉Python语法非常有帮助,这里推荐给大家,希望大家能够喜欢。
    2015-03-03
  • python实现外卖信息管理系统

    python实现外卖信息管理系统

    这篇文章主要为大家详细介绍了python实现外卖信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python异常处理之避免try-except滥用的3个核心原则

    Python异常处理之避免try-except滥用的3个核心原则

    在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需要的小伙伴可以了解下
    2025-09-09
  • 对Python多线程读写文件加锁的实例详解

    对Python多线程读写文件加锁的实例详解

    今天小编就为大家分享一篇对Python多线程读写文件加锁的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python-Tkinter Text输入内容在界面显示的实例

    Python-Tkinter Text输入内容在界面显示的实例

    今天小编就为大家分享一篇Python-Tkinter Text输入内容在界面显示的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 使用Playwright进行移动端模拟测试的实现

    使用Playwright进行移动端模拟测试的实现

    Playwright 移动端模拟通过设备上下文实现了对屏幕、触摸、网络、地理位置的全方位模拟,结合内置设备预设和自定义配置,可高效覆盖从功能测试到兼容性验证的场景,感兴趣的可以了解一下
    2026-01-01
  • python使用jieba实现中文分词去停用词方法示例

    python使用jieba实现中文分词去停用词方法示例

    jieba分词,完全开源,有集成的python库,简单易用。下面这篇文章主要给大家介绍了关于python使用jieba实现中文分词去停用词的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-03-03
  • Python requests接口测试实现代码

    Python requests接口测试实现代码

    这篇文章主要介绍了Python requests接口测试实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python 列表推导式需要注意的地方

    Python 列表推导式需要注意的地方

    这篇文章主要介绍了Python 列表推导式需要注意的地方,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10

最新评论