WMX · 随记
·Python· 3 分钟阅读

f-string 格式化:显示精度不改变数据精度

价格或成功率显示很多小数时,常用格式化保留两位。要注意格式化产生的是字符串,并没有修正此前运算中的误差。

▶ 本文含视频讲解
▶ 教学视频手动播放 · 英语讲解

Learn Python — Full Course for Beginners

Python 入门课程作为语法与编程背景复习;本文使用的较新标准库特性不保证在该课程中逐项覆盖。此为外部原版课程,多篇笔记可能共用;未剪辑为本文专属视频。

播放器需要能访问 YouTube 的网络;若这里无法加载,可打开原视频。本文与本地图解仍可独立阅读。

Python 系列概览:输入校验、数据处理与行为验证
Python 系列概览:输入校验、数据处理与行为验证 点击图片查看大图 ↗

问题从哪里出现

价格或成功率显示很多小数时,常用格式化保留两位。要注意格式化产生的是字符串,并没有修正此前运算中的误差。

理解核心机制

格式说明符控制宽度、对齐、分组和精度。百分号格式会把比例乘以一百再显示,因此不应先手动乘一百。数值计算与展示应保持分离。

动手做一个小实验

Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。

Python6 行 · 可横向滚动
ratio = 7 / 12
print(f"success: {ratio:.1%}")
print(f"count: {1234567:,}")
print(f"{'name':<8} {'score':>6}")
print(f"{'Ada':<8} {91.25:>6.1f}")
assert isinstance(f"{ratio:.2f}", str)

适用边界与常见误区

二进制浮点和十进制财务规则并不相同。固定宽度也不保证中文终端列宽一致,因为字符显示宽度不是简单的字符串长度。

继续练习

比较比例 0、1/3、1 的百分比展示,再把格式化字符串转回数字,观察信息丢失发生在哪里。

参考资料

阅读相关官方文档或原始资料 ↗

← 返回文章归档