1

所以我写了一些代码,然后发现使用 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() 函数更简洁,但我无法正确获取 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)

如果你运行第一个片段,你会看到我想要实现的目标。表中每个数字之间的差距取决于程序中的最高数字。谢谢你。

4

1 回答 1

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 
于 2013-11-02T21:55:17.167 回答