Python打印浮动填充空格而不是零

Aln*_*tak 4 python python-2.7

我有一个浮点数,myfloat = 0.002我想用空格填充' '而不是尾随零打印.

假设我想myfloat用空格填充右对齐到5个空格.为清楚起见,我将'|'在我的浮动后打印.

我想要的是: 0.002 |

什么填充印刷(我知道)给出:

>>> print(str(myfloat) + '|') # no padding, formatting
0.002|
>>> print('%.5f' % myfloat + '|') 
0.00200|
>>> print('{0:<5f}|'.format(myfloat))
0.002000|
>>> print('{0:.5f}|'.format(myfloat)) 
0.00200|
Run Code Online (Sandbox Code Playgroud)

print('{0:<Xf}|'.format(myfloat))X> 8左右后,我知道垫有空格.我不想要任何尾随零.

我在同一行上打印多个浮点数.它们具有不同的字符串长度,我希望它们使用空格填充而不是零来均匀对齐,因此静态填充字符串将不起作用.

举例来说,可以说,我要打印的内容myfloatlist1 = [0.01, 0.002, 0.0003, 0.00004],并myfloatlist2 = [0.00004, 0.0003, 0.002, 0.01]在两行,每行具有相同间隔填充:

0.01     0.002    0.0003   0.00004 
0.00004  0.0003   0.002    0.01
Run Code Online (Sandbox Code Playgroud)

无论如何用空格填充浮动打印(不将浮动转换为字符串或其他东西)?

Gri*_*lis 5

那这个呢?

>>> '{0: <8}|'.format(str(myfloat))
'0.002   |'
Run Code Online (Sandbox Code Playgroud)

编辑:按照Gall的评论,这就足够了

>>> '{0: <8}|'.format(myfloat)
'0.002   |'
Run Code Online (Sandbox Code Playgroud)

  • 感觉这是正确的方法.但是不需要``str``调用. (3认同)