from lista_vazia import ListaVaziaError
from remover_erro import RemoverError
class ReceberConvidados:
def __init__(self):
self.convidados = []
def adicionar_convidado(self, posicao, convidado):
self.convidados.insert(posicao -1, convidado)
@property
def ver_convidados(self):
if not self.convidados:
raise ListaVaziaError("Nenhum convidado adicionado.")
else:
return "\n".join(
f"{i} - {c}" for i, c in enumerate(self.convidados, 1))
@property
def ver_convidados_ordenados(self):
convidados_ordenados = sorted(self.convidados)
if not convidados_ordenados:
raise ListaVaziaError("Nehum convidado adiconado.")
else:
return "\n".join(
f"{i} - {c}" for i, c in enumerate(convidados_ordenados, 1))
def remover_convidado(self, convidado):
if not self.convidados:
raise RemoverError("Nehum convidado para remover.")
if convidado not in self.convidados:
raise RemoverError(f"O convidado {convidado} não foi encontrado.")
else:
self.convidados.remove(convidado)
class ListaVaziaError(Exception):
"""Exceção lançada quando a lista está vazia."""
pass
class RemoverError(Exception):
"""Exceção lançada quando tentamos remover alguém que não está na lista."""
pass
from reogarnizar_lista import ReceberConvidados
from lista_vazia import ListaVaziaError
from remover_erro import RemoverError
def menu():
print("\n----- Organizador de Convites -----")
print("1 - Adicionar convidado")
print("2 - Ver convidados")
print("3 - Ver convidados ordenados")
print("4 - Remover convidado")
print("5 - sair")
organizador = ReceberConvidados()
def main():
while True:
menu()
try:
opcao = int(input("\nEscolha uma opção: "))
if opcao == 5:
print("Saindo...")
break
match opcao:
case 1:
nome = input("Digite o nome do novo convidado: ")
posicao = int(input("Digite a posição na qual deseja inserir o convidado: "))
organizador.adicionar_convidado(posicao, nome)
print(f"Convidado {nome} adicionado na posição {posicao} com sucesso.")
case 2:
print("\nLista de convidados:")
print(organizador.ver_convidados)
case 3:
print("\nLista de convidados ordenadois:")
print(organizador.ver_convidados_ordenados)
case 4:
nome_remover = input("Digite o nome convidado a remover: ")
organizador.remover_convidado(nome_remover)
print(f"Convidado {nome_remover} removido com sucesso.")
case _:
print("Digite apenas números entre 1 e 5")
except ValueError:
print("Digite apenas números")
except ListaVaziaError as e:
print(e)
except RemoverError as r:
print(r)
if __name__ == '__main__':
main()