我是Python的初学者,我遇到了以下示例,但我开始修补它,因为好奇心得到了我的最好。有两个相关的问题,了解它们可能有助于我理解.format()实际上做了什么,以及有什么限制。我查看了文档,但我的具体示例从未被提及
我开始摆弄这段代码:
print 'The diameter of {planet} is {measure} kilometers'.format(planet="Earth", measure=12742.34)
产生了输出:
地球直径为12742.34公里
但后来我开始问自己......“这个.format()有多灵活?”
当我选择{measure}作为数学输出时,如何避免python完成的舍入?
print 'The diameter of {planet} is {measure}'.format(planet="Earth", measure=10/3)
地球的直径 3 公里
如何强制{measure}的 float ? psuedo (我知道它不起作用,但放在这里作为参考)
print 'The diameter of {planet} is {0:.2f}{measure}'.format(planet="Earth", measure=10/3)
答案 0 :(得分:1)
这意味着你正在使用python 2.x并且你有很多选项,因为默认整数除法产生整数
选项1:导入部门库
from __future__ import division
选项2:将任一因子更改为浮动,或者您可以通过将.0更改为浮点数(小数点)或将其乘以1.0
print 'The diameter of {planet} is {measure:.2f}'.format(planet="Earth", measure=10/3.0)
答案 1 :(得分:0)
您可以通过measure = 10/ float(3)
转换为浮动。如果分子或分母是浮点数,那么结果也是。
和
在Python 3.x中,单斜杠(/)始终表示真(非截断)除法。 (//运算符用于截断除法。)在Python 2.x(2.2及更高版本)中,您可以通过放置from __future__ import division
答案 2 :(得分:-1)
您也可以这样做:
print 'The diameter of {} is {}'.format("Earth",10/3)