打印正方形数表

问题描述 投票:0回答:2
n: 8
 0  1  2  3  4  5  6  7
 8  9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63

如何在Python中打印这样的数字表,其中n可以是任意数字? 我正在使用一种非常愚蠢的方式来打印它,但结果不是预期的

python numbers
2个回答
0
投票

我不会直接向您展示代码,这里有一些提示给您。你知道Python中的

%
运算符吗?以及如何使用它来断线。至于格式,
zfill
功能会帮助你。您可能需要学习
for
while
陈述来解决您的问题


0
投票

您可以使用范围循环和列表理解来做到这一点。

为了使输出看起来正确,您需要计算出正方形中最大值的宽度是多少。然后,您需要格式化每个值以适合该宽度(右对齐)。像这样的东西:

def number_square(n):
    w = len(str(n*n-1))
    for r in range(n):
        print(*[f'{c:>{w}}' for c in range(r*n, r*n+n)])

number_square(8)

输出:

 0  1  2  3  4  5  6  7
 8  9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
© www.soinside.com 2019 - 2024. All rights reserved.