如何使用python使第二列完美排列?

时间:2014-07-27 11:29:21

标签: python

当我运行以下代码时,我试图使第二列完美排列:

import math
x = 1.0 
while x <= 65536.0: 
  print x, '\t\t', math.log(x)/math.log(2.0) 
  x = x * 2.0

然而,无论我使用多少'\ t',第二列的三个底线总是与前一行相关的额外时间标签。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用str.format并在内部排队:

import math
x = 1.0
while x <= 65536.0:
    print "{:7}    {}".format(x, math.log(x)/math.log(2.0))
    x = x * 2.0

    1.0    0.0
    2.0    1.0
    4.0    2.0
    8.0    3.0
   16.0    4.0
   32.0    5.0
   64.0    6.0
  128.0    7.0
  256.0    8.0
  512.0    9.0
 1024.0    10.0
 2048.0    11.0
 4096.0    12.0
 8192.0    13.0
16384.0    14.0
32768.0    15.0
65536.0    16.0

或使用zfill()填充零:

 print "{}    {}".format(str(x).zfill(7),math.log(x)/math.log(2.0))


00001.0    0.0
00002.0    1.0
00004.0    2.0
00008.0    3.0
00016.0    4.0
00032.0    5.0
00064.0    6.0
00128.0    7.0
00256.0    8.0
00512.0    9.0
01024.0    10.0
02048.0    11.0
04096.0    12.0
08192.0    13.0
16384.0    14.0
32768.0    15.0
65536.0    16.0