Hello!
I'm studying Python and wrote a very simple class to work with bidimensional arrays - just as an exercise.
Before writing te class I played around with functions and they worked fine.
When I tried to do the same using a class, things became strange...
Okay, I wrote this class:
import random
class Matriz:
matriz = []
def __init__ (self, grau_matriz, inicio):
self.__grau_matriz = grau_matriz
if inicio == 0:
self.zero()
elif inicio == 1:
self.aleatoria()
def zero(self):
for i in range(self.__grau_matriz):
linha = []
for j in range(self.__grau_matriz):
linha.append(0)
self.matriz.append(linha)
def aleatoria(self):
for i in range(self.__grau_matriz):
linha = []
for j in range(self.__grau_matriz):
linha.append(random.randrange( 1, 10 ))
self.matriz.append(linha)
def mostra(self):
for i in range(self.__grau_matriz):
for j in range(self.__grau_matriz):
print "%2d " % self.matriz[i][j],
print
print
To teste this class, I wrote this;
# Use Matriz class
from Matriz import Matriz
matriz1 = Matriz(3,0)
matriz1.mostra()
print
And the result is "IndexError: list index out of range" in mostra method, when it tries to run this line: print "%2d " % self.matriz[j],
I ask, why??
So far I did not find where I did it wrong.
Thanks very much for any hints! :)