Python的f格式使用及说明

 更新时间:2025年09月12日 09:04:04   作者:ooolmf  
Python 3.6引入的f-string通过在字符串前加f,直接嵌入变量或表达式,使代码更直观简洁,相比传统格式化方法,其优势在于高效、灵活,支持动态计算和数字格式化,成为现代Python推荐的字符串处理方式

当然!这是一个非常棒的问题,这是现代 Python 中非常重要和常用的一种字符串格式化方法,叫做 f-string(格式化字符串字面值)。

我们来把它彻底讲明白。

核心概念:f-string

f-string 是在 Python 3.6 中引入的一种新的字符串格式化机制。

它的核心思想是:在字符串中直接嵌入变量或表达式,让字符串的构建更加直观、易读和简洁。

它的语法非常简单,就是在普通字符串前加一个字母 fF

分解你的语句:print(f"已发送请求: {a} + {b}")

我们来逐字分解:

f"..."

  • 这个 f 是关键所在。它告诉 Python:“这是一个 f-string,请准备好,我要在里面直接写变量名了”。
  • 没有这个 f{a}{b} 就只是普通的字符,不会被解析为变量。

{a}{b}

  • 花括号 {} 是 f-string 的“魔法区域”。在这对花括号里,你可以直接写入变量名或甚至是有效的 Python 表达式
  • 当 Python 执行这行代码时,它会读取花括号里的内容,计算出它的值,然后将这个值转换成一个字符串,并替换到整个字符串的对应位置

执行过程

假设变量 a 的值是 10,变量 b 的值是 20

  • Python 看到字符串前面的 f,知道这是 f-string。
  • 它找到第一个花括号 {a},取出变量 a 的值 10,转换成字符串 "10",并放在这里。
  • 它找到第二个花括号 {b},取出变量 b 的值 20,转换成字符串 "20",并放在这里。
  • 现在,整个字符串就变成了:"已发送请求: 10 + 20"
  • print 函数最终输出这个组合好的字符串。

所以,你的屏幕上就会看到:已发送请求: 10 + 20

对比其他格式化方法(为什么 f-string 更好)

在你学习 f-string 之前,你可能见过其他方法,f-string 的出现就是为了让它们变得过时。

1. 最古老的 %-formatting

name = "Alice"
age = 25
print("Hello, %s. You are %d years old." % (name, age))
  • %s, %d 是占位符,需要按顺序提供一个元组 (name, age)。如果变量多或者顺序错了,很容易出错。

2. 稍现代的 str.format()

name = "Alice"
age = 25
print("Hello, {}. You are {} years old.".format(name, age))
# 或者用名字占位
print("Hello, {name}. You are {age} years old.".format(name=name, age=age))
  • % 方式好一些,但依然需要在字符串末尾调用 .format() 并重新列出变量,不够直接。

3. 王者:f-string (最推荐!)

name = "Alice"
age = 25
print(f"Hello, {name}. You are {age} years old.")
  • 极其直观:变量名直接嵌入到它该在的位置,一眼就能看出最终字符串的样子。
  • 更高效:因为在运行时直接计算表达式,所以速度通常比 %format 更快。
  • 功能强大:不仅可以是变量,还可以是表达式。

f-string 的强大功能示例

f-string 远不止能插入变量那么简单:

1. 直接执行表达式

a = 5
b = 10
print(f"Five plus ten is {a + b}, not {2 * (a + b)}.")
# 输出:Five plus ten is 15, not 30.

2. 调用方法

name = "alice"
print(f"Hello, {name.upper()}!") # 调用字符串的 upper() 方法
# 输出:Hello, ALICE!

3. 格式化数字(保留小数、按位数对齐等)

pi = 3.1415926535
number = 42
# 保留两位小数
print(f"Pi is approximately {pi:.2f}") 
# 输出:Pi is approximately 3.14

# 将数字 42 格式化为占 5 位宽度,不足的地方用 0 填充
print(f"The answer is {number:05d}") 
# 输出:The answer is 00042

总结

你的语句 print(f"已发送请求: {a} + {b}") 可以通俗地理解为:

“打印一句话。这句话的内容是‘已发送请求: ’,然后紧接着把变量 a 的值放这里,再放一个加号 ‘+’,再然后把变量 b 的值放这里。”

这种 f”...{variable}...” 的格式是当今 Python 世界最主流、最推荐的字符串格式化方式,因为它写起来最自然,读起来最清晰。希望你以后多多使用它!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 机器学习之线性回归详解分析

    Python 机器学习之线性回归详解分析

    回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化。回归模型正是表示从输入变量到输出变量之间映射的函数
    2021-11-11
  • 在python中实现导入一个需要传参的模块

    在python中实现导入一个需要传参的模块

    这篇文章主要介绍了在python中实现导入一个需要传参的模块,具有很好的参考价值,希望可以给大家一个参考,以后在遇到这种的情况的时候,知道如何应对
    2021-05-05
  • python按比例随机切分数据的实现

    python按比例随机切分数据的实现

    这篇文章主要介绍了python按比例随机切分数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python中turtle绘图模块的详细讲解

    Python中turtle绘图模块的详细讲解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,下面这篇文章主要给大家介绍了关于Python中turtle绘图模块的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Django Channel实时推送与聊天的示例代码

    Django Channel实时推送与聊天的示例代码

    这篇文章主要介绍了Django Channel实时推送与聊天的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python学习之路之pycharm的第一个项目搭建过程

    Python学习之路之pycharm的第一个项目搭建过程

    这篇文章主要介绍了Python学习之路之pycharm的第一个项目搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python正则表达式匹配不包含某几个字符的字符串方法

    python正则表达式匹配不包含某几个字符的字符串方法

    今天小编就为大家分享一篇python正则表达式匹配不包含某几个字符的字符串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 利用Python将图片中扭曲矩形的复原

    利用Python将图片中扭曲矩形的复原

    这篇文章主要给大家介绍了关于如何利用Python将图片中扭曲矩形复原的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 更改linux系统的默认Python版本方式

    更改linux系统的默认Python版本方式

    通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv等工具管理版本
    2025-08-08
  • Python采集热搜数据实现详解

    Python采集热搜数据实现详解

    这篇文章主要为大家介绍了Python采集热搜数据实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论