Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Matriz Correta

Como faço para quer as linhas figuem uma abaixo da outra, assim como é formada a matriz de matemática.

matriz = []
m = int(input("Digite o número de linhas da matriz: "))
n = int(input("Digite o número de colunas da matriz: "))

def criaMatriz(m, n, matriz):
  for i in range(1, m+1):
    linha = []
    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)

      matriz.append(linha)

criaMatriz(m, n, matriz)

print (matriz)
4 respostas

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]

fiz dessa forma

matriz = []
m = int(input("Digite o número de linhas da matriz: "))
n = int(input("Digite o número de colunas da matriz: "))

def criaMatriz(m, n, matriz):
  for i in range(1, m+1):
    linha = []
    matriz.append(linha)
    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)

      matriz.append(linha)

criaMatriz(m, n, matriz)

for linha in matriz:
  print(1)

e ficou assim 1 1 1 1 1

solução!

Digite errado

for linha in matriz:
    print(linha) #linha

Eu errei na digitação, foi mals Rsrd

Blz Era isso mesmo...!! kkkk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software