3
respostas

Erro ai imprimir matriz

Estou recebendo o seguinte erro ao imprimir "Traceback (most recent call last): File "python", line 7, in NameError: name 'funcao' is not defined"

matriz = []
for i in range (2):
  matriz.append([])
  for j in range (2):
    matriz[i].append(input('Digite o valor da %d°. linha, %d°. coluna: ' %(i+1,j+1)))
print ("A matriz lida é: ")
funcao (matriz)

def funcao(A):
  for i in range(1, len(A)-1):
    for j in range(1, len(A)-1):
      print("%d" %A[i][j], end = " ")
    print()
3 respostas

Boa tarde! Tente declarar a função antes dos laços de repetição.


def funcao(A):
  for i in range(1, len(A)-1):
    for j in range(1, len(A)-1):
      print("%d" %A[i][j], end = " ")
    print()

matriz = []
for i in range (2):
  matriz.append([])
  for j in range (2):
    matriz[i].append(input('Digite o valor da %d°. linha, %d°. coluna: ' %(i+1,j+1)))
print ("A matriz lida é: ")
funcao(matriz)

Abraço

não imprimiu a matriz, somete o que está dentro do print("A matriz...) funcao matriz não impimiu

Consegui o que voce quer:

python matriz.py 
Digite o valor da 1°. linha, 1°. coluna: 1
Digite o valor da 1°. linha, 2°. coluna: 2
Digite o valor da 2°. linha, 1°. coluna: 3
Digite o valor da 2°. linha, 2°. coluna: 4
A matriz lida é: 
1 2 
3 4

O erro na impressão eram os indices eles estavam de 1 a tamanho da linha ou coluna menos 1, logo isso fazia um loop de 1 a 1. O índice da linhaças começa em 0 e no python o fim não é incluindo.

0 a 2 for j in range(0, len(A)):

#matriz.py
# -*- coding: UTF-8 -*-
from __future__ import print_function

def funcao(A):
    for i in range(0, len(A)):
        for j in range(0, len(A)):
            print("%d" %A[i][j], end = " ")
        print()

matriz = []
for i in range (2):
    matriz.append([])
    for j in range (2):
        matriz[i].append(input('Digite o valor da %d°. linha, %d°. coluna: ' %(i+1,j+1)))
print ("A matriz lida é: ")
funcao(matriz)