您现在的位置是:亿华云 > 数据库
Python 格式化字符串字面值
亿华云2025-10-03 22:12:27【数据库】4人已围观
简介本文转载自微信公众号「Piper蛋窝」,作者Piper蛋。转载本文请联系Piper蛋窝公众号。本文参考输入输出 — Python 3.7.10 文档[1]。首先声明咱的实验环境。❯python--ve
本文转载自微信公众号「Piper蛋窝」,格式作者Piper蛋。化字转载本文请联系Piper蛋窝公众号。符串
本文参考输入输出 — Python 3.7.10 文档[1]。字面值首先声明咱的格式实验环境。
❯ 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% 来表示「让数字变成百分数%,并且保留两位小数(.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)[3]。咱们这里自己造个场景:打印表格。
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 位更多的内容除了参考官方文档,菜鸟教程的 Python 格式化函数[4]也是不错的中文资料。
以后随用随查,在搜索引擎中输入关键字python + 格式化输出即可。
参考资料
[1]输入输出 — Python 3.7.10 文档: https://docs.python.org/zh-cn/3.7/tutorial/inputoutput.html
[2]格式规格迷你语言(format specification mini language): https://docs.python.org/zh-cn/3.7/library/string.html#format-specification-mini-language
[3]Python 的源码库字符串格式示例(format examples): https://docs.python.org/zh-cn/3.7/library/string.html#formatexamples
[4]菜鸟教程的 Python 格式化函数: https://www.runoob.com/python/att-string-format.html
很赞哦!(3)
相关文章
- Status、Creation Date、Expiration Date
- 天啦噜!Python多线程居然是骗人的?
- 一日一技:如何识别一张图片的格式
- AI自动评审论文,CMU这个工具可行吗?我们用它评审了下论文
- 并非一个好米任何人都会给你一个好的价格。那你该如何用以有的好米卖出最理想的价格呢?
- 虚拟现实将成为更具创造性的通信方式
- 使用Python开发鸿蒙应用--2021.01.07直播图文
- 前端高效开发小技巧
- 域后缀首选.com,.net,然后是.cn。后缀选择不当,导致流量损失。域名是企业与互联网网址之间的链接,关键是企业在网络上存在的标志。因此,选择好域名是开展网上工作的首要重要条件。
- NPOI操作Excel之二创建Excel并设置样式
站长推荐
互联网其实拼的也是人脉,域名投资也是一个时效性很强的东西,一个不起眼的消息就会引起整个域名投资市场的动荡,因此拓宽自己的人脉圈,完善自己的信息获取渠道,让自己能够掌握更为多样化的信息,这样才更有助于自己的域名投资。
95后程序员可能不知道的
轻量级架构可视化:Coco 实现
苹果AR/VR专利提出具有内部光反射抑制功能的显示器
3、不明先知,根据相关征兆预测可能发生的事件,以便提前做好准备,赶紧注册相关域名。;不差钱域名;buchaqian抢先注册,就是这种敏感类型。预言是最敏感的状态。其次,你应该有眼力。所谓眼力,就是善于从社会上时不时出现的各种热点事件中获取与事件相关的域名资源。眼力的前提是对域名领域的熟悉和丰富的知识。
NPOI操作Excel之三解析Excel
VS Code Go 语言扩展将默认启用 gopls
微服务的这些坑不能碰