Python格式化输出 f-string
中等4把变量和文字完美组合——f-string 格式化输出
有时候,用逗号分隔输出内容虽然简单,但看起来不够整洁。比如想输出“小明今年8岁”,用逗号写出来:print("小明今年", age, "岁") 会多出一个空格。有没有更漂亮的写法呢?有,就是 f-string。
f-string 是什么?
f-string 是 Python 3.6 以后提供的一种格式化字符串的方式。它让你可以直接在字符串花括号 {} 里放变量,非常直观。就像给字符串开了一个小窗口,把变量“扔”进去。
一、基本用法:在字符串前加 f
在字符串前加一个 f 或 F,然后在字符串内部用 {变量名} 插入变量:
name = "小明" # 名字
age = 8 # 年龄
print(f"{name}今年{age}岁")
输出:小明今年8岁
注意,这里没有多余的空格,非常整齐。
生活例子: 妈妈让你在纸条上写“小明今年8岁”,如果用旧方法(逗号)会变成“小明 今年 8 岁”,像多出几个空格。f-string 就像用尺子画好格子,把文字和数字直接嵌在一起。
二、可以放表达式:计算、函数调用都行
花括号里不仅可以放变量,还可以放计算式、函数调用等:
a = 10 # 第一个数
b = 3 # 第二个数
print(f"{a} 加 {b} 等于 {a + b}")
# 还可以放函数
score = 85 # 考试分数
print(f"你的成绩是{score}分,及格了吗?{'及格' if score >= 60 else '不及格'}")
输出:
10 加 3 等于 13
你的成绩是85分,及格了吗?及格
注意:花括号里可以写任何 Python 表达式,比如 {a > b} 会输出 True 或 False。这对检查条件很方便。
三、控制数字格式:保留几位小数、加百分号
比如想保留几位小数,可以在花括号内加冒号:
pi = 3.1415926 # 圆周率
print(f"圆周率约等于 {pi:.2f}") # :.2f 表示保留两位小数
price = 25.5 # 商品价格
discount = 0.8 # 八折
final_price = price * discount # 打折后价格
print(f"原价{price}元,打{int(discount*10)}折后需付{final_price:.2f}元")
输出:
圆周率约等于 3.14
原价25.5元,打8折后需付20.40元
常见格式控制:
:.2f保留2位小数:.0f保留0位小数(取整):%显示成百分数(如{0.8:.0%}输出 80%)
rate = 0.876 # 通过率 87.6%
print(f"通过率为 {rate:.1%}") # 输出:通过率为 87.6%
四、对齐和填充(了解即可)
f-string 还能控制文本的对齐,比如右对齐或居中对齐。对一级考试来说,只需要知道有这功能就行。
name = "小红"
print(f"|{name:>10}|") # 向右对齐,总宽10格
print(f"|{name:^10}|") # 居中对齐
print(f"|{name:*<10}|") # 向左对齐,用*填充空白
输出:
| 小红|
| 小红 |
|小红*******|
五、用生活的例子理解(手抄报比喻)
想象你在做手抄报,你需要把文字和数字贴在一起。用胶水(逗号)会把它们粘得有点歪(中间有空格),而 f-string 像是一张有凹槽的模板,直接把数字嵌进文字里,严丝合缝。
再比如,你给自己列零花钱清单:
item = "笔记本" # 买的物品
cost = 15.5 # 价格
print(f"今天买了{item},花了{cost:.1f}元")
输出清晰多了。
六、对比一下三种输出方式
name = "小红" # 名字
score = 95 # 分数
# 方式1:逗号
print(name, "考试得了", score, "分")
# 方式2:加号拼接(不推荐)
print(name + "考试得了" + str(score) + "分")
# 方式3:f-string(推荐)
print(f"{name}考试得了{score}分")
第一种输出:小红 考试得了 95 分(多了空格)
第二种:小红考试得了95分(但要把数字转成字符串,有点麻烦)
第三种:小红考试得了95分(简洁,空格可控)
显然 f-string 最好用。
七、新手容易犯的错误
-
忘记写 f
name = "小明" print("{name}今年8岁") # 输出:{name}今年8岁(没替换)正确写法:
print(f"{name}今年8岁") -
花括号里变量名写错
age = 8 print(f"小明今年{aga}岁") # 报错 NameError -
数字格式写错了冒号
pi = 3.14 print(f"{pi.2f}") # 错误,应该是 {pi:.2f} -
忘记把数字转为字符串(在加号拼接时容易犯,f-string自动处理)
f-string 内部会自动把变量转成字符串,不用担心类型错误。
八、完整可运行的示例:统计零花钱
下面是一个完整的程序,用 f-string 输出零花钱的记账结果:
# 零花钱记账程序
item_1 = "铅笔" # 第一个物品
cost_1 = 2.5 # 价格
item_2 = "橡皮" # 第二个物品
cost_2 = 1.0 # 价格
total = cost_1 + cost_2 # 总花费
daily_allowance = 20 # 每天零花钱
remain = daily_allowance - total # 剩余
print("今天记账:")
print(f"买了{item_1}({cost_1:.1f}元)和{item_2}({cost_2:.1f}元)")
print(f"共花费{total:.1f}元,还剩{remain:.1f}元")
运行输出:
今天记账:
买了铅笔(2.5元)和橡皮(1.0元)
共花费3.5元,还剩16.5元
九、小练习
用 f-string 输出你的名字和年龄,要求输出格式为:“我叫XX,今年XX岁”。
示例:
my_name = "小华" # 你的名字
my_age = 10 # 你的年龄
print(f"我叫{my_name},今年{my_age}岁")
十、相关指引
f-string 是 Python 中最推荐的字符串格式化方式。除了 f-string,还有 format() 方法和 % 格式化(类似 C 语言),但在编程学习中,掌握 f-string 就足够应对大多数情况。接下来可以学习:
- 字符串常见操作(查找、替换、分割)
- input 输入(配合 f-string 输出用户输入的信息)
- 类型转换(学会把 input 输入的字符串转成数字,再做运算和输出)
f-string 让输出变得更优雅、更清晰,是 Python 里非常有用的工具。以后你会经常用到它。
例题精讲
以下哪个选项能正确使用f-string将变量name的值插入字符串中?
执行以下代码,输出结果是什么? name = "小明" age = 10 print(f"{name}明年{age+1}岁")
在f-string中,如果想输出大括号字符(例如{或}),需要使用双大括号{{或}}进行转义。
请补全代码,使用f-string输出以下内容(变量已定义):
name = "小明"
age = 10
print(f"我的名字是___,我今年___岁")请补全代码,使用f-string将变量pi保留两位小数(四舍五入)输出:
pi = 3.14159
print(f"圆周率约是___")