当前位置: 首页 > 后端技术 > Python

Python格式化字符串文字值-官方文档称其为“漂亮”的输出格式

时间:2023-03-26 15:21:00 Python

Python格式化字符串字面值|官方文档称其为“漂亮”的输出格式本文参考输入输出—Python3.7.10文档。首先声明我们的实验环境。?python--versionPython3.7.0引用:场景带来的需求我们要在控制台上给用户反馈计算结果(比如AOE值为0.82),所以需要写打印逻辑。描述计算结果的语句是死的(AOE值),但数字是活的(0.82)。我们希望将计算结果连接成描述结构的语句。新手可能会使用字符串连接(字符串“加法”+)。val_dict={'AOE':0.8200001,'wcb':13423431,'p':0.0314}print("AOE值为"+str(val_dict['AOE'])+",wcb值为"+str(val_dict['wcb']))ifval_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"{'拒绝原假设'ifval_dict['p']<0.05else'接受原假设'}")输出:AOE值为0.8200001,wcb值为13423431。拒绝原假设没有错,和前面的写法完全一样。但这次我们直接将“活”变量“嵌入”到“死”句中。而且我们把逻辑也写进了字符串,表示在f"{}"的{}大括号里,可以放变量和表达式。更改上面的示例以查看更多用法:例如在{}大括号中进行简单计算,或者使用一些特殊的格式化语法来保留小数并将其转换为科学计数法。print(f"AOE值为{val_dict['AOE']*100}%,wcb值为{val_dict['wcb']:E}")print(f"{'拒绝原假设'ifval_dict['p']<0.05else'AcceptNullHypothesis'}")输出:AOE值82.00001%,wcb值1.342343E+07RejectNullHypothesis请注意,我们使用了特殊语法,如上面的{val_dict['wcb']:E},:E表示将数字val_dict['wcb']转换为科学计数法。像:E,我们有更多的用法。在Python中,它被称为格式规范迷你语言。我们可以直接应用:.2%来表示“将数字设为百分比并保留两位小数(.2)”。print(f"AOE值为{val_dict['AOE']:.2%}%,wcb值为{val_dict['wcb']:E}")print(f"{'拒绝原假设'ifval_dict['p']<0.05else'接受原假设'}")输出:AOE值为82.00%%,wcb值为1.342343E+07拒绝原假设不是比{val_dict['AOE']更好吗*100}%非常优雅。更多示例和其他用法请参考Python的字符串格式示例(formatexamples)。让我们在这里创建一个场景:打印表格。table={'Tom':[31,32.314,31,.423],'Jerry':[1,.41,313,123],'Paul':[7,.4,53,.45754]}defprint_table(t):print('|name|attr|feat|gest|dest|')print('|--------|--------|---------|------|--------|')forname,valsintable.items():print(f'|{name:_^8}|{vals[0]:^8}|{vals[1]:>6.2f}|{vals[2]:^8}|{vals[3]:>8.3f}|')print_table(table)输出:|姓名|属性|壮举|格斯|目标||--------|--------|--------|--------|--------||__Tom___|31|32.31|31|0.423||_杰瑞__|1|0.41|313|123.000||__保罗__|7|0.40|53|在打印数据f{name:_^8}的逻辑中,^表示居中,8表示长度为8,_表示padding_(默认用空格填充)inf{vals[1]:>6.2f},>6表示长度为6,在右边。.2f表示作为小数使用,保留2位以上。除了参考官方文档,菜鸟教程的Python格式化功能也是很好的中文资料。以后边用边搜,在搜索引擎输入关键字python+格式化输出即可。我是小派,欢迎加我微信PiperLHJ转载交流。