Erro em função para gerar matrizes

1. Erro em função para gerar matrizes

Lucas jose Pereia de Araujo
LucasJPA

(usa Debian)

Enviado em 16/03/2020 - 15:43h

Boa tarde,

Estou tendo problemas para gerar matrizes, construí uma função que gera números aleatórios para preencher as patrizes mas apresenta esse erro quando executo o código.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-26-167bc06d1f68> in <module>
1 init_matrix(100, 90)
----> 2 print_matrix(init_matrix)

<ipython-input-25-a5267e850292> in print_matrix(matrix)
14 def print_matrix(matrix):
15 print ("Matriz")
---> 16 for i in range(len(matrix)):
17 for j in range(len(matrix[0])):
18 print(matrix[i][j], '\t',)

TypeError: object of type 'function' has no len()


Aqui está o código
# função para definir de n linhas e m colunas 

def init_matrix(n_linha,m_coluna):
x = []
for i in range(n_linha):
linha = []
for j in range(m_coluna):
linha = linha + [random.randint(1,10000)]
x = x + [linha]
return x

# mostrar a matriz

def print_matrix(matrix):
print ("Matriz")
for i in range(len(matrix)):
for j in range(len(matrix[0])):
print(matrix[i][j], '\t',)
print
print ('_' * 10)

init_matrix(100, 90)
print_matrix(init_matrix)


Desde já agradeço.




  


2. Re: Erro em função para gerar matrizes

Matheus
pylm

(usa Gentoo)

Enviado em 30/03/2020 - 14:25h

Você definiu 2 argumentos pra função e tá não usando nenhum deles, logo ela não retorna nada e o len é aplicado na própria função, a qual não tem um método __len__


3. Re: Erro em função para gerar matrizes

Lucas jose Pereia de Araujo
LucasJPA

(usa Debian)

Enviado em 14/04/2020 - 10:05h

Cara poderia me dizer como proceder ? Peguei esse código de um tutorial na internet e sou leigo em python :(


4. Re: Erro em função para gerar matrizes

Adriano Christi
ACMM

(usa Linux Mint)

Enviado em 20/07/2020 - 08:49h

Vê se isso ajuda:

from random import randint

def geraMatriz(lin, col):
coluna = [ ]
for x in range(lin):
linha = [ ]
for y in range(col):
a = randint(1, 1000)
while a in linha:
a = randint(1, 1000)
linha.append(a)
coluna.append(linha)
return coluna

def showMatrix(mat):
for x in range(len(mat)):
print(mat[x])

matriz = geraMatriz(5, 4)
showMatrix(matriz)


Guns don't kill people. People kill people.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts