Python如何在format方法中用变量指定数值精度?
解决Python格式化字符串时动态指定小数位数的问题
你遇到的错误是因为格式字符串里的.njj写法不合法,Python无法识别njj是一个变量,所以提示缺少精度值。下面给你几种可行的解决方式:
方法1:使用f-string(推荐,Python3.6+支持)
直接在格式符中嵌入变量,写法简洁直观:
njj = 8 alpha = 0.0004258819580078126 print(f'alpha= {alpha:.{njj}f}')
运行后会输出:alpha= 0.00042588
方法2:使用str.format()的动态参数传递
把精度变量作为第二个参数传入format方法:
njj = 8 alpha = 0.0004258819580078126 print('alpha= {:.{}f}'.format(alpha, njj))
同样能得到期望的输出结果。
方法3:使用%格式化语法
通过*来接收动态的精度参数:
njj = 8 alpha = 0.0004258819580078126 print('alpha= %.*f' % (njj, alpha))
这种写法兼容性更好,适合Python2和早期Python3版本。
这三种方法都能实现根据运行时的njj值动态保留对应小数位数的需求,你可以根据自己的Python版本和习惯选择。
内容的提问来源于stack exchange,提问作者Maryam Samadi
相关产品推荐
相关产品推荐

