Можете ли вы помочь мне в том, как правильно напечатать это? Я пробовал много способов, но никто не работал
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
Заранее спасибо.
Попробуйте использовать str.rjust(width[, fillchar])
, затем вы можете использовать fillchar
для получения точек
https://docs.python.org/3.6/library/stdtypes.html?highlight=rjust#str.rjust