所以我编写了一些代码,然后发现使用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)
如果您运行第一个代码段,您将看到我正在尝试实现的目标。表中每个数字之间的差距取决于程序中的最大数字。谢谢。
答案 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