当我运行以下代码时,我试图使第二列完美排列:
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',第二列的三个底线总是与前一行相关的额外时间标签。
我该如何解决这个问题?
答案 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