给定这个简单的python脚本:
import sys, math
for i in range(1, len(sys.argv)):
num = float(sys.argv[i])
print('sin(%f) = %f' % (num, math.sin(num)))
使用下列参数运行:
python hw2a.py 1.4 -0.1 4 99
我想要这个输出:
sin(1.4)=0.98545
sin(-0.1)=-0.0998334
sin(4)=-0.756802
sin(99)=-0.999207
然而,当我运行它时,我在小数点和有效数字后面得到了许多无关紧要的数字(好吧,零)。我知道我可以使用%来指定固定数量的小数。3f,但我怎么才能让它打印小数点后面的所有数字,直到没有有效数字剩下?
提前感谢!
可以使用%g
:
In [16]: a = [1.4, -0.1, 4, 99]
In [18]: for num in a:
...: print('sin(%g) = %g' % (num, math.sin(num)))
...:
sin(-0.1) = -0.0998334
sin(4) = -0.756802
sin(99) = -0.999207
使用sys.argv[i]
,不需要将i转换为浮点数和字符串,g
格式化:
import sys, math
for i in range(1, len(sys.argv)):
num = float(sys.argv[i])
print "sin({}) = {:g}".format(sys.argv[i],math.sin(num))
python foo.py 1.4 -0.1 4 99
sin(1.4) = 0.98545
sin(-0.1) = -0.0998334
sin(4) = -0.756802
sin(99) = -0.999207
如果数据没有像@mhawke建议的那样手动输入,您可以使用:
print "sin({:g}) = {:g}".format(num, math.sin(num))