Missão: sua agenda de contatos
Sete missões, uma aplicação: você constrói a agenda de contatos do projeto final peça por peça, com classes, JSON e testes, e o código roda e é conferido aqui mesmo, no navegador. As entradas do usuário são simuladas automaticamente no teste, então o seu trabalho é fazer o código dar a resposta certa.
Missão 1 de 7 · 25 XP
Missão 1: a classe Contato
Toda a agenda gira em torno de um contato. Ele guarda nome, telefone e e-mail, e sabe se apresentar com __str__.
Objetivo: Complete o método __str__ para devolver o texto no formato: Ana - (11) 90000-0000 - ana@email.com
Missão 2 de 7 · 25 XP
Missão 2: a classe Agenda
A Agenda guarda uma lista de contatos e sabe adicionar um novo. Cada agenda começa vazia.
Objetivo: Complete __init__ (lista vazia) e adicionar (acrescenta o contato à lista). Confirme com Total: 2.
Missão 3 de 7 · 30 XP
Missão 3: listar e buscar
A agenda precisa listar todos os contatos e buscar por nome. A busca usa uma compreensão para achar quem combina.
Objetivo: Complete buscar_por_nome para devolver a lista de contatos cujo nome contém o texto. Esperado: Ana encontrada.
Missão 4 de 7 · 30 XP
Missão 4: erro próprio
Buscar um contato que não existe deve avisar com clareza. Para isso, uma exceção própria: ContatoNaoEncontradoError.
Objetivo: Complete obter_por_nome para levantar ContatoNaoEncontradoError quando ninguém combina. Esperado: Nao achei.
Missão 5 de 7 · 30 XP
Missão 5: salvar em JSON
A agenda precisa sobreviver ao fechar o programa. Salvamos os contatos em JSON, convertendo cada contato num dicionário.
Objetivo: Complete salvar para gravar a lista de dicionários em contatos.json; depois confira lendo o arquivo.
Missão 6 de 7 · 30 XP
Missão 6: carregar do JSON
Ao abrir, a agenda lê o JSON e reconstrói os objetos Contato. Assim os dados voltam como objetos, não como dicionários crus.
Objetivo: Complete carregar para ler o JSON e recriar cada Contato. Esperado: Ana com telefone 111.
Missão 7 de 7 · 40 XP
Missão 7: a agenda em uso
A missão final junta tudo num menu simples. O teste simula uma sessão: adiciona dois contatos, lista, busca um e sai. O esqueleto está pronto; faltam adicionar e buscar.
Objetivo: Complete adicionar e buscar_por_nome para o menu funcionar de ponta a ponta.
O teste vai digitar por você, nesta ordem: 1 Ana 111 1 Bruno 222 2 3 Ana 4