Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução de Exercícios - 08 Reorganizando uma lista de convidados (Parte 1)

PARTE 1


models/convidado.py


import random

class Convidado:

    def __init__ (self, nome):

        self.nome = nome
        self.id = random.randint(1, 1000)

models/lista_de_convidados.py


class ListaConvidados:

    lista_convidados = []

    @classmethod

    def adicionar_convidado (cls, convidado, posicao = None):

        """ 
        Adiciona um convidado À lista de convidados com base na sua posição fornecida. 
        
        Parâmetros:
        
        Convidado: objeto da classe Convidado;
        Posição: int.
        """

        if posicao is None:

            cls.lista_convidados.append (convidado)

        else:

            # Definição de posição para a innserção através da posição fornecida

            cls.lista_convidados.insert (posicao - 1, convidado)

    @classmethod

    def remover_convidado (cls, convidado):

        """
        Remove um convidado da lista de convidados. 
        
        Parâmetro:
        
        Convidado: objeto da classe Convidado.
        """

        cls.lista_convidados.remove (convidado)

    @classmethod 

    def buscar_convidado_por_nome (cls, nome):

        """
        Busca um convidado na lista com base no seu nome.
        
        Parâmetro:
        
        Nome: str.
        """

        for convidado in cls.lista_convidados:

            if convidado.nome == nome:

                return convidado

        return None
    
    @classmethod

    def exibir_lista_convidados (cls):

        if not cls.lista_convidados:

            print ("\nNão há convidados na lista.")

        else:

            print ("\nLista de convidados")
            print (f"{"Nome".ljust(25)} | {"ID".ljust(25)} | {"Posição".ljust(25)}")

        for convidado in cls.lista_convidados:
            
            print (f"{convidado.nome.ljust(25)} | {str(convidado.id).ljust(25)} | {str(cls.lista_convidados.index(convidado) + 1).ljust(25)}")

Continua...

1 resposta

Olá, Victor! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a orientação a objetos para estruturar o gerenciamento de convidados em Python, utilizou muito bem a classe Convidado com ID aleatório para diferenciar cada pessoa e ainda compreendeu a importância da lista centralizada com métodos de manipulação para adicionar, remover e buscar registros.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Corrigir pequenos detalhes de digitação: como “innserção” no comentário.
  • Ordenação da lista: exibir convidados em ordem alfabética ou por ID para facilitar a leitura.
  • Validação de nomes duplicados: evitar que o mesmo convidado seja adicionado mais de uma vez.

Ah, uma pergunta: qual foi o seu maior desafio ao realizar essa atividade?

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!