本文转载自微信公众号《吹笛蛋窝》,作者吹笛蛋。转载本文请联系派珀蛋巢公众号。本文参考InputOutput—Python3.7.10Documentation[1]。首先声明我们的实验环境。?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'acceptNullhypothesis'}")输出: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%表示“将数字设为带两位小数(.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)[3]。让我们在这里创建一个场景:打印表格。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)输出:|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|如上:我们的数据存储在表中,print_table保存打印数据的逻辑f{name:_^8}中,^表示居中,8表示长度为8,_表示f{vals[1]:>6.2f}中的padding_(默认填充空格),>6表示长度为6,在正确的,2f表示作为小数,保留2位以上除了参考官方文档外,菜鸟教程的Python格式化函数[4]也是很好的中文资料。以后边用边搜,在搜索引擎输入关键字python+格式化输出即可。参考文献[1]输入输出——Python3.7.10文档:https://docs.python.org/zh-cn/3.7/tutorial/inputoutput.html[2]格式规范迷你语言:https://docs.python.org/zh-cn/3.7/library/string.html#format-specification-mini-language[3]Python字符串格式示例(格式示例):https://docs.python。org/zh-cn/3.7/library/string.html#formatexamples[4]Python格式化函数菜鸟教程:https://www.runoob.com/python/att-string-format.html
