печать строки как матрицы - PullRequest
0 голосов
/ 17 октября 2019

Попытка позволить пользователю ввести число и распечатать таблицу в соответствии с квадратом ее размера. Вот пример.

Size--> 3
 0  1  2
 3  4  5
 6  7  8

Size--> 4
 0  1  2  3
 4  5  6  7
 8  9 10 11
12 13 14 15

Size--> 6
 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

Size--> 9
 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 64 65 66 67 68 69 70 71
72 73 74 75 76 77 78 79 80

Вот код, который я пробовал.

length=int(input('Size--> '))
size=length*length
biglist=[]
for i in range(size):
    biglist.append(i)
biglist = [str(i) for i in biglist]
for i in range(0, len(biglist), length):
        print(' '.join(biglist[i: i+length]))

, но вместо этого вот что я получил

Size--> 3
0 1 2
3 4 5
6 7 8

Size--> 4
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15

Size--> 6
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

Как вы можете видетьстроки не выровнены правильно, как в примере. Какой самый простой способ представить его в правильном положении? Thx:)

1 Ответ

0 голосов
/ 17 октября 2019

Использование .format для строки с выравниванием по правому краю.

И strlen - количество символов, необходимое для каждого числа.

length = int(input('Size--> '))
size = length*length
biglist = []
for i in range(size):
    biglist.append(i)
biglist = [str(i) for i in biglist]
strlen = len(str(length**2-1))+1
for i in range(0, len(biglist), length):
    # print(' '.join(biglist[i: i+length]))
    for x in biglist[i: i+length]:
        print(f"{x:>{strlen}}", end='')
    print()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...