Python Printing Matrix

1

Можете ли вы помочь мне в том, как правильно напечатать это? Я пробовал много способов, но никто не работал

while True:
    m = int(input())
    mlen = m
    sm = 1
    aux = 1
    matriz = []

    if m == 0:
        print()
        break

    for i in range(m):
        linha = []
        for j in range(m):
            linha.append(sm)
        matriz.append(linha)

    while m - 2 > 0:
        for i in range(aux, m - 1):
            for j in range(aux, m - 1):
                matriz[i][j] = sm + 1
        sm += 1
        aux += 1
        m -= 1
    for i in matriz:
        for j in i:
            print('{:4}'.format(j), end='')
        print('')

Я должен напечатать матрицу в качестве примера ниже. Это упражнение URI Online Judge (№ 1435). Точки внизу - это пробелы, и после последнего элемента матрицы я не могу иметь их.

    Accepted Output             Your Output
1   ··1···1···1···1         1   ···1···1···1···1
2   ··1···2···2···1         2   ···1···2···2···1
3   ··1···2···2···1         3   ···1···2···2···1
4   ··1···1···1···1         4   ···1···1···1···1
6   ··1···1···1···1···1     6   ···1···1···1···1···1
7   ··1···2···2···2···1     7   ···1···2···2···2···1
8   ··1···2···3···2···1     8   ···1···2···3···2···1
9   ··1···2···2···2···1     9   ···1···2···2···2···1
10  ··1···1···1···1···1     10  ···1···1···1···1···1

Заранее спасибо.

Теги:

1 ответ

0

Попробуйте использовать str.rjust(width[, fillchar]), затем вы можете использовать fillchar для получения точек

https://docs.python.org/3.6/library/stdtypes.html?highlight=rjust#str.rjust

  • 0
    Здравствуйте, я пробовал это, но я не знаю, как удалить лишний пробел в первом столбце. Мне нужно иметь 3 пробела между символами, и они должны быть выровнены вправо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню