LEONE
发布于 2025-09-04 / 4 阅读
0
0

Python 字符串格式化入门教程:从一个计算任务开始

大家好!本教程旨在通过一个简单的实例,帮助初学者(小白用户)理解 Python 中一个非常重要且常见的操作:字符串格式化

我们将计算一个成绩提升的百分比,并学习用三种不同的方法,将计算结果优雅地嵌入到一句话中进行输出。

🎯 我们的目标

问题描述:小明的成绩从去年的 72 分提升到了今年的 85 分。我们需要计算他成绩提升的百分点,并最终在屏幕上打印出如下格式的句子:

小明成绩提升了: 18.1%

📝 Part 1: 基础准备工作

在进行格式化输出之前,我们首先需要完成数据的准备和核心业务逻辑的计算。这部分代码在我们将要学习的三种方法中是完全共通的。

# 1. 定义变量,存储原始数据
# s1 代表去年的成绩
s1 = 72
# s2 代表今年的成绩
s2 = 85
​
# 2. 进行计算,并将结果存入新变量 r
# 这里的 r 代表 rate (比率) 或 result (结果)
# 计算公式:(新值 - 旧值) / 旧值 * 100
r = ((s2 - s1) / s1) * 100

代码解释

  • s1 = 72s2 = 85:我们将两个分数分别存放在名为 s1s2 的变量(可以想象成带标签的盒子)中。

  • r = ...:我们计算出提升的百分比(结果约为 18.0555...),并将其存入名为 r 的新变量中。

现在,变量 r 中已经包含了我们需要的数值。接下来的任务,就是如何把它和文字组合成我们想要的最终效果。

🛠️ Part 2: 三种格式化输出方法

这里,我们将详细介绍三种可以实现目标的方法。它们从“复古”到“现代”,各有特点。

方法一:f-string (现代 & 强烈推荐)

f-string 是 Python 3.6 版本以后引入的新功能,它非常直观、简洁、高效,是目前社区最推荐的格式化方式。

使用方法: 它的特点就像做“填空题”。在字符串前面加一个 f,然后用大括号 {} 直接包住变量名,就可以将变量的值嵌入其中。

代码示例

print(f'小明成绩提升了: {r:.1f}%')

语法详解

  • f'...':前缀 f 激活了 f-string 功能。

  • {r}:这是“填空”的位置,Python 会用变量 r 的值来填充。

  • ::冒号是特殊符号,表示“接下来是格式化要求”。

  • .1f:这就是具体的格式要求。.1 表示小数点后保留一位,f 表示按浮点数(小数)处理。Python 会自动进行四舍五入。


方法二:str.format() 方法 (通用 & 依然常用)

在 f-string 出现之前,这是最主流的格式化方法。它通过一个叫 .format() 的“工具”来实现,也非常强大和灵活。

使用方法: 可以理解为“先占位,再传值”。先在字符串里用 {} 占一个位置,然后在字符串末尾调用 .format() 方法,把变量传进去。

代码示例

print('小明成绩提升了: {:.1f}%'.format(r))

语法详解

  • {:.1f}:在字符串模板中设置一个带格式要求的占位符。这里的 :.1f 含义与 f-string 中完全相同。

  • .format(r):调用 .format() 方法,并把变量 r 作为参数传入。该方法会自动将 r 的值填充到前面的占位符 {} 中。


方法三:% 运算符 (复古 & 了解即可)

这是 Python 最早的格式化方法,语法借鉴自 C 语言。在一些老旧的项目代码中仍然可以见到,但现在已不推荐在新代码中使用。

使用方法: 使用 % 配合特定的字母(如 %f 代表小数,%s 代表字符串)来占位。

代码示例

print('小明成绩提升了: %.1f%%' % r)

语法详解

  • %.1f:这是占位符。% 是占位的标志,.1f 的含义依然是“保留一位小数的浮点数”。

  • %%:这是一个特殊规则。因为单个 % 被用作占位符了


评论