正确的格式布局

时间:2013-11-02 21:47:01

标签: python string format

所以我编写了一些代码,然后发现使用format()函数可以更轻松地完成它。 我的代码是

r = int(input("Please enter a number "))
c = int(input("Please enter a number "))
numberLength=len(str(r**c))
for i in range(1,r+1):
    for j in range(1,c+1):
        currentNumber = len(str(i**j))
        print(" "*((numberLength-currentNumber)+1),end="")
        print((i**j),end="")       
    print('')

但使用format()函数更简洁,但我无法正确获得格式格式。

r = int(input("Please enter a number "))
c = int(input("Please enter a number "))
numberLength=len(str(r**c))
for i in range(1,r+1):
    for j in range(1,c+1):
        currentNumber = i**j
        {0:>{1}}.format(currentNumber ,numberLength)

如果您运行第一个代码段,您将看到我正在尝试实现的目标。表中每个数字之间的差距取决于程序中的最大数字。谢谢。

1 个答案:

答案 0 :(得分:2)

使用end=' ',默认python使用新行,这就是为什么所有数字都在新行上打印的原因。当嵌套循环结束时,使用空白print()来引入新行。

for i in range(1,r+1):
    for j in range(1,c+1):
        currentNumber = i**j
        print ("{0:>{1}}".format(currentNumber ,numberLength), end=' ')
    print()

<强>演示:

Please enter a number 5
Please enter a number 5
   1    1    1    1    1 
   2    4    8   16   32 
   3    9   27   81  243 
   4   16   64  256 1024 
   5   25  125  625 3125