Tacio, você poderia fazer um for que imprima cada linha ao invés de chamar apenas o print(matriz)
como abaixo:
for linha in matriz:
print(linha)
Contudo, tem um pequeno ponto a ser corrigido em seu código, no segundo for do método criarMatriz
você fez esta sequência:
linha.append(x)
matriz.append(linha)
Isso da um probleminha pois o a matriz fica inserindo a Linha a cada elemento informado, e o ideal é que a linha só fosse adicionada à matriz quando estiver cheia.
Do jeito que está uma matrz 3X3 é impressa assim:
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [4, 5, 6], [4, 5, 6], [4, 5, 6], [7, 8, 9], [7, 8, 9], [7, 8, 9]]
Viu o problema?
Para corrigir basta dar o append antes do segundo for, assim a matriz insere a linha, esta linha é preenchida,
def criaMatriz(m, n, matriz):
for i in range(1, m+1):
linha = []
matriz.append(linha) #o append vem aqui
for j in range(1, n+1):
x = int(input("Digite o valor da linha %i e coluna %i da matriz: "%(i,j)))
linha.append(x)
Código em execução:
Digite o número de linhas da matriz: 3
Digite o número de colunas da matriz: 3
Digite o valor da linha 1 e coluna 1 da matriz: 1
Digite o valor da linha 1 e coluna 2 da matriz: 2
Digite o valor da linha 1 e coluna 3 da matriz: 3
Digite o valor da linha 2 e coluna 1 da matriz: 4
Digite o valor da linha 2 e coluna 2 da matriz: 5
Digite o valor da linha 2 e coluna 3 da matriz: 6
Digite o valor da linha 3 e coluna 1 da matriz: 7
Digite o valor da linha 3 e coluna 2 da matriz: 8
Digite o valor da linha 3 e coluna 3 da matriz: 9
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]