我应该写一个导致这个的代码:
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
0 2 4 6 8 10 12 14 16 18
0 3 6 9 12 15 18 21 24 27
0 4 8 12 16 20 24 28 32 36
0 5 10 15 20 25 30 35 40 45
0 6 12 18 24 30 36 42 48 54
0 7 14 21 28 35 42 49 56 63
0 8 16 24 32 40 48 56 64 72
0 9 18 27 36 45 54 63 72 81
这是我的代码:
for i in range(10):
print("0", end=" ")
print("")
for i in range(0, 10):
print(i, end=" ")
print("")
for i in range(10):
i = i * 2
print(i, end=" ")
print("")
for i in range(10):
i = i * 3
print(i, end=" ")
print("")
for i in range(10):
i = i * 4
print(i, end=" ")
print("")
for i in range(10):
i = i * 5
print(i, end=" ")
print("")
for i in range(10):
i = i * 6
print(i, end=" ")
print("")
for i in range(10):
i = i * 7
print(i, end=" ")
print("")
for i in range(10):
i = i * 8
print(i, end=" ")
print("")
for i in range(10):
i = i * 9
print(i, end=" ")
print("")
我刚编了一堆' for'声明,我觉得有一种方法可以编码我不必重复的地方。我想知道是否有更有效的方法来做到这一点?我如何得到正确的对齐?
谢谢。
答案 0 :(得分:3)
您需要做的就是运行一个从0到9的循环。这个循环变量将是"乘数"。在每次迭代中,将乘数乘以数字0到9.如下所示,我已使用map
+ int.__mul__
完成此操作,但还有其他(可能更快的方式,如果性能是您的担心这样做。
为了证明这一点,您可以使用str.format
并使用正确的理由({:>3}.format(number)
)。
for i in range(10):
print(*map('{:>3}'.format, map(i.__mul__, range(10))))
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
0 2 4 6 8 10 12 14 16 18
0 3 6 9 12 15 18 21 24 27
0 4 8 12 16 20 24 28 32 36
0 5 10 15 20 25 30 35 40 45
0 6 12 18 24 30 36 42 48 54
0 7 14 21 28 35 42 49 56 63
0 8 16 24 32 40 48 56 64 72
0 9 18 27 36 45 54 63 72 81