Eu estou fazendo uma atividade em python que é para printar as matrizes, podendo usar uma matriz base como por exemplo a que eu to usando de 5x5, mas se você alterar o tamanho da matriz, as respostas deverão permanecer idênticas às ilustrações. O problema é que estou com dificuldade de fazer as letras "G" e "I"
Esse é meu código até agora:
# Definindo o tamanho da matriz
size = 5
# Criando a matriz size x size
matriz = [[i]*size for i in range(1, size + 1)]
# a)
print("a)")
for i in range(size):
print(" " * i + str(matriz[i][i]))
# b)
print("\nb)")
for i in range(size):
print(" ".join(str(matriz[i][j]) for j in range(i + 1)))
# c)
print("\nc)")
for i in range(size):
print(" " * (size - 1 - i) + " ".join(str(matriz[i][j]) for j in range(i + 1)))
# d)
print("\nd)")
for i in range(size):
if i < size // 2:
print(" ".join(str(matriz[i][j]) for j in range(i + 1)))
elif i == size // 2:
print(" ".join(str(matriz[i][j]) for j in range(i + 1)))
else:
print(" ".join(str(matriz[i][j]) for j in range(size - i)))
# e)
print("\ne)")
for i in range(size):
if i < size // 2:
print(" " * (size - 1 - i * 2) + " ".join(str(matriz[i][j]) for j in range(i + 1)))
elif i == size // 2:
print(" ".join(str(matriz[i][j]) for j in range(i + 1)))
else:
spaces = (i - size // 2) * 2
if size % 2 == 0:
spaces -= 1
print(" " * spaces + " ".join(str(matriz[i][j]) for j in range(size - i)))
# f)
print("\nf)")
for i in range(size):
if i % 2 == 0:
print(str(matriz[i][0]) + " " * 5 + str(matriz[i][0]) + " " * 5 + str(matriz[i][0]))
else:
print(" " * 3 + str(matriz[i][0]) + " " * 5 + str(matriz[i][0]))
# g)
print("\ng)")
for i in range(size):
if i < size // 2:
print(str(matriz[i][0]) + " " * (4 * (size - 1 - i)) + str(matriz[-1][0]))
elif i == size // 2:
print(" ".join(str(matriz[i][j]) for j in range(size)))
else:
print(str(matriz[i][0]) + " " * (4 * (i - size // 2)) + str(matriz[-1][0]))
# h)
print("\nh)")
for i in range(size):
if i == 0 or i == size - 1:
print(" ".join(str(matriz[i][0]) for _ in range(size)))
elif i < size // 2:
print(" " * (i * 2) + " ".join(str(matriz[i][0]) for _ in range(size - i * 2)))
else:
print(" " * ((size - i - 1) * 2) + " ".join(str(matriz[i][0]) for _ in range(size - (size - i - 1) * 2)))
print("\ni)")
for i in range(size):
if i == size // 2:
print(" ".join(str(matriz[i][0]) for _ in range(size * 2 - 1)))
elif i < size // 2:
print(" " * (size - i * 2 - 1) + " ".join(str(matriz[i][0]) for _ in range(i * 2 + 1)))
else:
print(" " * ((i - size // 2) * 2 - 1) + " ".join(str(matriz[i][0]) for _ in range((size - i) * 2 - 1)))