Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

estou com erro na linha 70 e nao consigo descobrir alguem pode me ajudar

class Programa: def init(self, nome, ano): self.nome = nome.title() self.ano = ano self.likes = 0

@property
def likes(self):
        return self._likes

def dar_like(self):
   self._likes += 1

@property
def nome(self):
        return self._nome

@nome.setter
def nome(self, novo_nome):
   self._nome = novo_nome.title()

def __str__(self):
   return f'{self._nome} - {self.ano} - {self._likes}  Likes'

class Filme(Programa): def init(self, nome, ano, duracao): super().init(nome, ano) self.duracao = duracao

def __str__(self):
     return f'{self._nome} - {self.ano} - {self.duracao} min - {self._likes}  Likes'

class Serie(Programa): def init(self, nome, ano, temporadas): super().init(nome, ano) self.temporadas = temporadas

def __str__(self):
    return f'{self._nome} - {self.ano} - {self.temporadas} temporadas - {self._likes}  Likes'

class Playlist: def int(self, nome, programas): self.nome = nome self.programas = programas

def tamanho(self):
    return len(self.programas)

Vingadores = Filme('vingadores - guerra infinita', 2018, 160) atlanta = Serie('atlanta', 2018, 2) tmep = Filme('todo mundo em pânico', 1999, 100) demolidor = Serie('Demolidor', 2016, 2)

Vingadores.dar_like() Vingadores.dar_like() tmep.dar_like() tmep.dar_like() tmep.dar_like() demolidor.dar_like() demolidor.dar_like() demolidor.dar_like() atlanta.dar_like() atlanta.dar_like()

filmes_e_series = [Vingadores, atlanta, demolidor, tmep] playlist_fim_de_semana = Playlist('fim de semana', filmes_e_series) erro esta nesta linha

for programa in filmes_e_series: print(programa)

3 respostas
solução!

Oi André! Tudo bem? Encontrei alguns errinho de sintaxe no código e vou te ajudar.

Vou colocar por partes.

  • Estrutura das classes

Suas classes Programa, Filme, Serie e Playlist estão indentadas de forma errada. Lembre-se sempre que você precisa dar um tab ou 4 espaços após os 2 pontos, beleza?

Além disso, faltou colocar os underscores nas funções init e super.

CORREÇÃO

class Programa:
    def __init__(self, nome, ano):
        self.nome = nome.title()
        self.ano = ano
        self.__likes = 0

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano)
        self.temporadas = temporadas

class Playlist():
    def __init__(self, nome, programas):
        self.nome = nome
        self.programas = programas
  • As f-strings estão com alguns errinhos de sintaxe, tipo falta de parênteses e aspas.

CORREÇÃO (olha em todas as funções returns)

return (f'Nome: {self._nome} - {self.ano} - {self.likes}')
  • Copiando daqui e jogando no Pycharm, a indentação ficou errada. Vale a pena dar uma olhadinha.

  • Cuidado com os atributos privados, se você quer definir como privado, ele precisa ter os __ na função __ init __

CÓDIGO COMPLETO CORRIGIDO

class Programa:
    def __init__(self, nome, ano):
        self.nome = nome.title()
        self.ano = ano
        self.__likes = 0

    @property
    def likes(self):
        return self.__likes

    def dar_like(self):
        self.__likes += 1

    @property
    def nome(self):
        return self._nome

    @nome.setter
    def nome(self, novo_nome):
        self._nome = novo_nome.title()

    def __str__(self):
        return (f'Nome: {self._nome} - {self.ano} - {self.likes}')

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao

    def __str__(self):
        return (f'{self._nome} - {self.ano} - {self.duracao} min - {self.likes}')

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano)
        self.temporadas = temporadas

    def __str__(self):
        return (f'Nome{self._nome} - {self.ano} - {self.temporadas} temporadas - {self.likes}')

class Playlist():
    def __init__(self, nome, programas):
        self.nome = nome
        self.programas = programas

    def tamanho(self):
        return len(self.programas)


Vingadores = Filme('vingadores - guerra infinita', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)
tmep = Filme('todo mundo em pânico', 1999, 100)
demolidor = Serie('Demolidor', 2016, 2)

Vingadores.dar_like()
Vingadores.dar_like()
tmep.dar_like()
tmep.dar_like()
tmep.dar_like()
demolidor.dar_like()
demolidor.dar_like()
demolidor.dar_like()
atlanta.dar_like()
atlanta.dar_like()

filmes_e_series = [Vingadores, atlanta, demolidor, tmep]
playlist_fim_de_semana = Playlist('fim de semana', filmes_e_series)

for programa in filmes_e_series: print(programa)

Testei no PyCharm e está retornando certinho. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado :)

obrigado ana pela atenção foi resolvido.

Imagina! Vou marcar como solução, beleza?

Bons estudos :)