1
resposta

[Projeto] # 07 - Hora da prática: criando classes, construtores e métodos.

#livro.py

class Livro:
    lista_livros = []

    def __init__(self, titulo="", autor="", ano=0):
        self._titulo = titulo
        self._autor = autor
        self._ano = ano
        self._disponivel = True
        Livro.lista_livros.append(self)

    def __str__(self):
        return f"Título: {self._titulo.ljust(50)} | Autor: {self._autor.ljust(30)} | Ano: {str(self._ano).ljust(20)} | Disponível: {self._disponivel }"

    def emprestar(self):
        self._disponivel = False
    
    def receber_devolução(self):
        self._disponivel = True

    @staticmethod
    def verificar_disponibilidade(ano):
        return [str(livro) for livro in Livro.lista_livros if livro._ano == ano and livro._disponivel]

#biblioteca.py

from livro import Livro

# Criação de instâncias
livro1 = Livro("O Capital no Século XXI", "Thomas Piketty", 2013)
livro2 = Livro("O Alquimista", "Paulo Coelho", 1988)
livro3 = Livro("1984", "George Orwell", 1949)
livro4 = Livro("A Revolução dos Bichos", "George Orwell", 1945)
livro5 = Livro("Berço dos Super-Humanos", "Arthur C. Clarke e Gentry Lee", 1988)
livro6 = Livro("Dom Casmurro", "Machado de Assis", 1899)

# Empréstimo e devolução de livros
livro5.emprestar()
livro3.emprestar()
print(Livro.verificar_disponibilidade(1949))
livro3.receber_devolução()
print(Livro.verificar_disponibilidade(1949))

# Pesquisa por ano
ano_pesquisa = int(input("Digite o ano de publicação de livros que deseja pesquisar:\n"))
pesquisa_por_ano = Livro.verificar_disponibilidade(ano_pesquisa)

# Impressão dos livros disponíveis no ano pesquisado
if pesquisa_por_ano != []:
    print(f"Livros disponíveis publicados no ano de {ano_pesquisa}:")
    for livro in pesquisa_por_ano:
        print(f"Título: {livro._titulo.ljust(30)} | Autor: {livro._autor.ljust(30)} | Ano: {str(livro._ano).ljust(20)} | Disponível: {livro._disponivel}")
else:
    print(f"Não há disponibilidade de livros publicados no ano de {ano_pesquisa}.")

#main.py

from livro import Livro

# Criação de duas instâncias
livro7 = Livro("Orgulho e Preconceito", "Jane Austen", 1813)
livro8 = Livro("O Senhor dos Anéis", "J.R.R. Tolkien", 1954)
livro9 = Livro("Cem Anos de Solidão", "Gabriel García Márquez", 1967)
livro10 = Livro("O Grande Gatsby", "F. Scott Fitzgerald", 1925)
livro11 = Livro("Memórias Póstumas de Brás Cubas", "Machado de Assis", 1881)

# Impressão das instâncias
print(livro8)
print(livro11)
1 resposta

Olá, estudante.

Tudo bem?

Seu código está bem estruturado e funcional, a classe Livro foi definida corretamente, e os import e a criação das instâncias estão corretos também. Parabéns! Continue com essa dedicação.

Espero ter ajudado e bons estudos!