Duvida Vetor [RESOLVIDO]

1. Duvida Vetor [RESOLVIDO]

Henrique Matheus Silva Arouca
henriquechanry28

(usa elementary OS)

Enviado em 12/11/2016 - 21:36h

Olá gente, estou com uma dúvida em python criei uma classe que possui como atributo um array, criei um objeto no main e atribui valores para esse vetor para testes e ele esta dando esse erro :

IndexError: list assignment index out of range

O código é esse
class polinomio:
polino = None
iterMAx = 0
l = 0
u = 0
e = 0
n = 0
a = []

def main():

polinom = polinomio()

polinom.polino = 'P(x) = 6x^4 + 3x^2 -0.5x -15'
polinom.iterMAx = 50
polinom.l = 1.0
polinom.u = 1.5
polinom.e = 0.001
polinom.n = 4

polinom.a[0] = 6.0
polinom.a[1] = 3.0
polinom.a[2] = -0.5
polinom.a[3] = -15.0

Secante (polinom,polinom.l,polinom.u,polinom.e,polinom.iterMAx)

if (__name__ == "__main__"):
main();

podem me ajudar ? Obrigado


  


2. Re: Duvida Vetor [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 12/11/2016 - 21:49h

A classe Polinomio tem que ser inicializada e seus atributos também para depois poder ser instanciada, talvez entre alguém para te explicar melhor, pois, eu não sei te explicar a parte técnica. A forma que eu faria seria assim:

class Polinomio(object):
def __init__(self):
self.polino = None
self.iterMAx = 0
self.l = 0
self.u = 0
self.e = 0
self.n = 0
self.a = []


def secante(a, b, c, d, e):
pass


def main():
polinom = Polinomio()

polinom.polino = 'P(x) = 6x^4 + 3x^2 -0.5x -15'
polinom.iterMAx = 50
polinom.l = 1.0
polinom.u = 1.5
polinom.e = 0.001
polinom.n = 4

polinom.a[0] = 6.0
polinom.a[1] = 3.0
polinom.a[2] = -0.5
polinom.a[3] = -15.0

secante(polinom, polinom.l, polinom.u, polinom.e, polinom.iterMAx)

if __name__ == "__main__":
main()




______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


3. Resposta

Henrique Matheus Silva Arouca
henriquechanry28

(usa elementary OS)

Enviado em 12/11/2016 - 21:53h

Obrigado pela ajuda, porém o erro persiste


4. Re: Duvida Vetor

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 12/11/2016 - 22:03h

Esqueci do erro, kkkkkkk

class Polinomio(object):
def __init__(self):
self.polino = None
self.iterMAx = 0
self.l = 0
self.u = 0
self.e = 0
self.n = 0
self.a = []


def secante(a, b, c, d, e):
pass


def main():
polinom = Polinomio()

polinom.polino = 'P(x) = 6x^4 + 3x^2 -0.5x -15'
polinom.iterMAx = 50
polinom.l = 1.0
polinom.u = 1.5
polinom.e = 0.001
polinom.n = 4

polinom.a.append(6.0)
polinom.a.append(3.0)
polinom.a.append(-0.5)
polinom.a.append(-15.0)

secante(polinom, polinom.l, polinom.u, polinom.e, polinom.iterMAx)

if __name__ == "__main__":
main()







______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


5. Erro continua

Henrique Matheus Silva Arouca
henriquechanry28

(usa elementary OS)

Enviado em 12/11/2016 - 22:07h

Resolveu o do polinom.a[0] = 6.0

Porém agora o erro está na linha de baixo :

polinom.a[0] = 6.0
polinom.a[1] = 3.0 <- aqui
polinom.a[2] = -0.5
polinom.a[3] = -15.0

e o que quer dizer isso que você colocou na inicialização do array no construtor da classe


6. Re: Duvida Vetor [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 12/11/2016 - 22:13h

Erro meu, já removi e já deveria estar tudo certo. O modo como você está adicionado itens a lista está errado:

No lugar de:
lista[0] = item 

Use:
lista.append(item) 

E depois percorra a lista normalmente.




______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts