Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
2021/6/8 14:20:59
本文主要是介绍Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
本文参考输入输出 — Python 3.7.10 文档。首先声明咱的实验环境。
❯ python --version Python 3.7.0
引例:场景带来的需求
我们要在控制台上给用户反馈计算结果(比如AOE值为 0.82
),于是就要写 print
逻辑。描述计算结果的语句是死的(AOE值为
),但数字是活的(0.82
)。我们希望把计算结果拼接到描述结构的语句上。新手可能会用字符串的拼接(字符串的「加法运算」+
)。
val_dict = { 'AOE': 0.8200001, 'wcb': 13423431, 'p': 0.0314 } print("AOE值为 " + str(val_dict['AOE']) + " ,wcb值为 " + str(val_dict['wcb'])) if val_dict['p'] < 0.05: print('拒绝原假设') else: print('接收原假设')
输出:
AOE值为 0.8200001 ,wcb值为 13423431 拒绝原假设
我们将介绍一种格式化方法,无论是书写还是易读,都比上述方法要优雅。
并且,我们将解决字符串拼接不能自动解决的小数位
、科学计数法
等问题。
格式化字符串字面值
官方文档:要使用格式化字符串字面值
,请在字符串的开始引号或三引号之前加上一个 f
或 F
。在此字符串中,你可以在 {
和 }
字符之间写可以引用的变量或字面值的 Python
表达式。
有点费解,还是看实例最清晰。
咱们把上面的代码改一下。
print(f"AOE值为 {val_dict['AOE']} ,wcb值为 {val_dict['wcb']}") print(f"{'拒绝原假设' if val_dict['p'] < 0.05 else '接收原假设'}")
输出:
AOE值为 0.8200001 ,wcb值为 13423431 拒绝原假设
没毛病,和之前的写法效果一模一样。但是咱们这回直接把「活的」变量『嵌入』到「死的」句子里面去了。
而且咱还把逻辑写进了字符串,说明在 f"{}"
的 {}
大括号里面,放变量和表达式都行。
再把上面的例子变个形,来看看更多用法:比如在 {}
大括号里做简单的运算,或者使用一些特殊格式化语法保留小数、转化为科学计数法。
print(f"AOE值为 {val_dict['AOE'] * 100}% ,wcb值为 {val_dict['wcb'] :E}") print(f"{'拒绝原假设' if val_dict['p'] < 0.05 else '接收原假设'}")
输出:
AOE值为 82.00001% ,wcb值为 1.342343E+07 拒绝原假设
注意到上面我们用了 {val_dict['wcb'] :E}
这样的特殊语法,:E
表示把数字 val_dict['wcb']
转换为科学计数法。
类似:E
,我们还有更多用法。在 Python 中,其名称为格式规格迷你语言(format specification mini language)。
我们可以直接应用 :.2%
来表示「让数字变成百分数%
,并且保留两位小数(.2
)」。
print(f"AOE值为 {val_dict['AOE'] :.2%}% ,wcb值为 {val_dict['wcb'] :E}") print(f"{'拒绝原假设' if val_dict['p'] < 0.05 else '接收原假设'}")
输出:
AOE值为 82.00%% ,wcb值为 1.342343E+07 拒绝原假设
岂不是要比 {val_dict['AOE'] * 100}%
的写法优雅很多。
更多示例
其他用法可以参考Python的字符串格式示例(format examples)。咱们这里自己造个场景:打印表格。
table = { 'Tom': [31, 32.314, 31, .423], 'Jerry': [1, .41, 313, 123], 'Paul': [7, .4, 53, .45754] } def print_table(t): print('| name | attr | feat | gest | dest |') print('|--------|--------|--------|--------|--------|') for name, vals in table.items(): print(f'|{name :_^8}|{vals[0] :^8}|{vals[1] :>6.2f} |{vals[2] :^8}|{vals[3] :>8.3f}|') print_table(table)
输出:
| name | attr | feat | gest | dest | |--------|--------|--------|--------|--------| |__Tom___| 31 | 32.31 | 31 | 0.423| |_Jerry__| 1 | 0.41 | 313 | 123.000| |__Paul__| 7 | 0.40 | 53 | 0.458|
如上:
- 我们的数据在
table
里存储了数据 - 在
print_table
保存了打印数据的逻辑- f
{name :_^8}
中,^
表示居中,8
表示长度为8
,_
表示填充_
(默认填充空格) - f
{vals[1] :>6.2f}
中,>6
表示长度为6
且靠右,.2f
表示作为小数,且保留2
位
- f
更多的内容除了参考官方文档,菜鸟教程的Python格式化函数也是不错的中文资料。
以后随用随查,在搜索引擎中输入关键字python + 格式化输出
即可。
我是小拍,欢迎加我微信 PiperLHJ 转载交流。
这篇关于Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型