首页 > 解决方案 > Python 打印矩阵

问题描述

你能帮助我如何以正确的方式打印这个吗?我尝试了很多方法,但都没有奏效

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

提前致谢。

标签: python

解决方案


尝试使用str.rjust(width[, fillchar]),然后您可以使用fillchar来获取点

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


推荐阅读