1
resposta

Criando uma agenda e imprimindo ordenada por nome

Escreva um programa que receba quantas entradas o usuário desejar e depois crie um novo contato para cada entrada (Nome, Telefone, Endereço, Email), e por fim imprima, em ordem alfabética de Nome, a agenda de contatos.

Como eu fiz:


Agenda = {}
contato = {}
while True:
    contato = {}
    nome = input("Nome: ")
    fone = input("Telefone: ")
    contato["Telefone"] = fone
    email = input("Email: ")
    contato["Email"] = email
    Agenda[nome] = contato
    resp = input("Deseja continuar adicionando a Agenda? ").upper().strip()
    if resp == "N":
        break
print()
print("Agenda Ordenada: ")
for ele in sorted(Agenda.keys()):
    print(ele, Agenda[ele])

O código funciona mas como estou aprendendo gostaria de saber se é uma boa solução e se alguém poderia mostrar um outro jeito de fazer mais simples ou mais elegante.

A saída:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Edson, tudo bem com você?

Peço desculpas pela demora no retorno.

Meus parabéns pela implementação do código, você está indo no caminho certo. Fico feliz que tenha compartilhado com a comunidade do fórum Alura seu desenvolvimento.

Como dica de otimização para o código, podemos fazer a divisão do código em funções onde cada função terá uma responsabilidade dentro do código.

Exemplos:

  • Criar uma função que ficará responsável por adicionar contatos.
  • Criar uma função que irá alterar um contato existente.
  • Criar uma função que possui a responsabilidade de excluir um contato.
  • Criar uma função responsável por realizar a pesquisa de contatos.

Para aprimorar ainda mais o seu aprendizado, recomendo a leitura do seguinte artigo, que apresenta com detalhes os pontos que devemos analisar no momento da criação de uma função.

O artigo acima está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.