EP08 - TypeError: 'Turtleship' object is not iterable

EP08 - TypeError: 'Turtleship' object is not iterable

por André Benites -
Número de respostas: 7

Eu fui fazendo o EP... segui todas as instruções, todos os resultados deram certo, mas por algum motivo, quando fui rodar o ep8, na parte do console ele dá esse tipo de erro(e eu não sei como posso fazer para consertar)
Se alguém pudesse dar uma dica de em que parte deve estar o erro, eu agradeceria

Em resposta à André Benites

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por Andrew Kurauchi -

Se alguém pudesse dar uma dica de em que parte deve estar o erro, eu agradeceria

O erro indica que alguma coisa não é iterável e que o objeto que deu erro é do tipo Turtleship, ou seja, ele queria alguma coisa iterável (uma lista, por exemplo?), mas ao invés disso recebeu um Turtleship.

Uma possível pergunta é: quem criou esse objeto que deu erro? Veja em que linha o erro ocorreu e volte no seu código, linha a linha, procurando quem altera essa variável.

Em resposta à Andrew Kurauchi

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por José Coelho de Pina -

Ois,

Apenas complementando a sugestão do Toshi.

Uma possível pergunta é: quem criou esse objeto que deu erro?

Hmmm.
Como sugere o Toshi, verifique a sua função crie_lista_turtleships().
A sua função deve retornar uma lista de (objetos da classe) Turtleship e não um (objeto da classe) Turtleship. 

Em resposta à José Coelho de Pina

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por André Benites -

Obrigado Toshi e Obrigado Coelho! Então, eu escrevi a função de duas maneiras:

for i in range (len (turtleships)):
turtleships[i]=Turtleship(turtleships[i][0],turtleships[i][1],turtleships[i][2],turtleships[i][3],turtleships[i][4],turtleships[i][5])
return turtleships

e

lista_nova=[]
for i in range(len(turtleships)):
lista_nova.append(Turtleship(turtleships[i][0],turtleships[i][1],turtleships[i][2],turtleships[i][3],turtleships[i][4],turtleships[i][5]))
return lista_nova

teoricamente eu achava q eu escrevi uma lista com elementos da classe Turtleship(ordenadamente).... Tem algo de errado??

Em resposta à André Benites

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por Andrew Kurauchi -

Tem algo de errado??

Não sei sorriso

Em Python a indentação é muito importante. Como está o seu código com os espaços (ou tabs)?

Pela sua resposta eu não entendi, qual das duas versões funcionou/não funcionou?

Em resposta à Andrew Kurauchi

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por André Benites -

Entao, eu comecei com a primeira, como vi q nao estava funcionando fiquei com duvida se estava realmente retornando uma lista e fiz o segundo jeito(em ambos o programa continua não funcionando(e é o unico objeto criado que poderia ter sido criado na classe Turtleship sem querer))
Pode ver no programa que está bem identado
(a funcao crie_lista_turtleships)
... não sei o que fazer
(Não sei se quer que eu mostre outras partes do codigo...
o erro que mostrou foi:
"

Traceback (most recent call last):
File "C:\Users\André\Documents\MAC0122\ep8.py", line 462, in <module>
main()
File "C:\Users\André\Documents\MAC0122\ep8.py", line 111, in main
console = Console(lista_astros, lista_turtleships)
File "C:\Users\André\Documents\MAC0122\console.py", line 87, in __init__
self.setup()
File "C:\Users\André\Documents\MAC0122\console.py", line 120, in setup
x_min, y_min = cantos[0]
TypeError: 'Turtleship' object is not iterable" 
E a gente não pode mexer no console, só colocar os dados corretos, e eu coloquei as funções e não esta funcionando
Se puder ajudar eu agradeceria

(Editado por Andrew Kurauchi - Saturday, 5 Nov 2016, 16:26)

Em resposta à André Benites

Re: EP08 - TypeError: 'Turtleship' object is not iterable

por Andrew Kurauchi -

Se puder ajudar eu agradeceria

Acho que o problema não está no seu código. Vi que os arquivos .py estão todos dentro do diretório MAC0122. Os arquivos dos eps anteriores estão nesse diretório também?

O console.py que tem self.setup() na linha 87 e x_min, y_min = cantos[0] na linha 120 é o do EP6. O console.py do EP8 não tem isso.