Oii Matheus, como você está?
Isso está acontecendo porque o que possuímos é uma lista de objetos, então a comparação quando utilizamos o operador == ou o operador in não funciona da mesma forma que fazemos com strings, pois são tipos diferentes.
Algo que podemos fazer é gerar todos os títulos da lista de filmes ou séries e após isso, verificar se o título pesquisado existe nessa nova lista que só possui os títulos. Veja:
listinha = [atlanta, vingadores, demolidor, tmep]
nomes_no_catalogo = [item.nome for item in listinha]
pesquisar = input("O que você procura? ")
if pesquisar in nomes_no_catalogo:
print ("Temos esse filme/série")
else:
print ("Não encontrei esse filme/série na playlist feriado")
Observe que a variável nomes_no_catalogo é uma list comprehension que percorre toda a lista de filmes (listinha
) e salva apenas o nome daquele filme ou série (item.nome
).
Feito isso, teremos na variável nomes_no_catalogo apenas os títulos dos filmes ou séries. E a partir disso poderemos efetuar a busca.
Vale lembrar que na pesquisa temos que utilizar as primeiras letras dos títulos em maiúsculo, isso porque é utilizado o método title() na inicialização do atributo nome na classe Programa.
Abaixo, uma imagem com o resultado:
Qualquer dúvida estou por aqui, tá bom?
Grande abraço!