jse*_*old 2 python string formatting
我想把一堆浮点数放入固定宽度的表中.也就是说,我希望最多使用12个字符.我想要使用至少10个小数(如果可用); 但是,如果10位小数使得它占用超过12个字符,则为圆形.我最初的想法是尝试这样的事情
# I only want 12 characters used total
num1 = 0.04154721841
num2 = 10.04154721841
# not what I want
print "{:<12.11g}".format((num1))
# what I want
print "{:<12.10f}".format((num1))
# not what I want
print "{:<12.10f}".format((num2))
# what I want
print "{:<12.11g}".format((num2))
Run Code Online (Sandbox Code Playgroud)
必须有一种方法来实现这一点,而无需编写函数来检查每个数字并根据上述条件给出格式.我错过了什么?
我不确定这是你在寻找什么,因为它不是完全用格式字符串完成的,但是,当事情变得太长时,你可以使用字符串切片来删除尾随字符:
num1 = 0.04154721841
num2 = 10.04154721841
num3 = 1002.04154721841
print "{0:<12.11g}".format(num1)[:12]
print "{0:<12.11g}".format(num2)[:12]
print "{0:<12.11g}".format(num3)[:12]
Run Code Online (Sandbox Code Playgroud)
输出:
0.0415472184
10.041547218
1002.0415472
Run Code Online (Sandbox Code Playgroud)
除此之外,我会说你应该写一个函数,虽然我不是这方面的专家str.format,所以我可能会遗漏一些东西.