1
resposta

Duvida no for

por que se eu definir nos métodos o print def imprime(self): print(f"{self.nome} - {self.ano}: {self.temporadas} temp. e {self.likes} Likes")

e depois no meu for eu colocar: for programa in filmes_e_series: print(programa.imprime())

Meu response vem com o None?

Vingadores - Guerra Infinita - 2018: 160 min e 1 Likes None Atlanta - 2018: 2 temp. e 2 Likes None

1 resposta

Olá, Daniela!

A razão pela qual você está vendo "None" após cada impressão é porque você está usando print(programa.imprime()) em seu loop. O método imprime() já contém um comando print, então você está basicamente imprimindo a impressão.

Quando você chama print() em um método que não tem um retorno explícito (como o seu método imprime()), Python retorna None por padrão. Então, print(programa.imprime()) está primeiro executando programa.imprime(), que imprime a string formatada, e então tenta imprimir o retorno desse método, que é None.

Para corrigir isso, você só precisa chamar o método imprime() sem o print(). Seu loop deve ficar assim:

for programa in filmes_e_series:
    programa.imprime()

Dessa forma, o método imprime() irá executar o comando print() e não haverá tentativa de imprimir um retorno None.

Bons estudos!