Elabore um programa que permita ao usuário gerenciar uma pequena lista de contatos prioritários (capacidade máxima de 20 contatos). Cada contato deve possuir nome usual (o primeiro nome ou apelido da pessoa), o nome completo, telefone fixo e telefone celular. Construa um pequeno menu de opções,permitindo a leitura da opção desejada até o usuário escolher 0, para sair. O menu terá, portanto, as seguintes opções:
- sair
- incluir um novo contato (adicione o novo contato na primeira posição livre do vetor de registros, cuidando com o limite de 20 contatos)
- consultar um contato a partir do nome usual (ler o nome usual, procurar pelo contato, em encontrando, mostrar as informações detalhadas dos campos, se não encontrar, mostrar mensagem de contato inexistente)
- exibir a listagem de todos os contatos em ordem alfabética de nome usual (ou seja, antes de imprimir os contatos existente na lista, ordene o vetor em ordem alfabética ascendente de nome usual).
Eu pensei em usar uma lista de dicionários para gerenciar a Agenda. Seria a melhor opção? Acredito que a opcao de máximo de contatos (20 contatos) não tenha como gerenciar com Python.
def buscaApelido(Agenda):
apelido = input("Digite o apelido a procurar: ")
for ele in Agenda:
if ele["apelido"] == apelido:
#print(f"nome completo = {ele['nome_completo']}")
#print(f"Telefone fixo = {ele['fixo']}")
#print(f"Telefone celular = {ele['celular']}")
return ele
agenda = []
contato = {}
while True:
opcao = int(input(f"Digite 0 para inserir um novo contato: ") )
match opcao:
case 0:
contato = {}#sem isso, vai ficar tudo repetido...
apelido = input("Digite o apelido: ")
contato["apelido"] = apelido
nome_completo = input("Digite o nome completo: ")
contato["nome_completo"] = nome_completo
fixo = input(" Digite o telefone fixo: ")
contato["fixo"] = fixo
celular = input("Digite o telefone celular: ")
contato["celular"] = celular
agenda.append(contato)
case 2:#consultar um contato a partir do nome usual
buscaApelido(agenda)
if buscaApelido(agenda):
print("Contato Inexistente")
break
case 3:#exibir a listagem de todos os contatos em ordem alfabética
pass
case 4:#sair
break
agenda
Problema: A busca por contato não funciona corretamente, por exemplo, caso o contato seja inexistente. O item 3 não consegui fazer. Alguma ideia?