Missão: meu primeiro sistema
Sete missões, um sistema: você constrói o gerenciador de tarefas do projeto final peça por peça, e o código roda e é conferido aqui mesmo, no navegador. Complete cada missão para somar XP. 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 · 20 XP
Missão 1: o menu de pé
Todo sistema de terminal começa pelo menu. O esqueleto abaixo mostra as opções e lê a escolha, mas ainda não se despede ao sair.
Objetivo: Complete a opção 5 para mostrar Até logo! e encerrar o loop com break.
O teste vai digitar por você, nesta ordem: 1 5
Missão 2 de 7 · 25 XP
Missão 2: adicionar tarefas
O sistema guarda cada tarefa como um dicionário {"texto": ..., "concluida": False} numa lista. A leitura já está pronta; falta guardar.
Objetivo: Complete a opção 1 para adicionar o dicionário da nova tarefa à lista com append.
O teste vai digitar por você, nesta ordem: 1 Comprar pão 2 5
Missão 3 de 7 · 25 XP
Missão 3: listar com número e status
Para concluir ou remover, o usuário precisa ver o NÚMERO de cada tarefa, e o status precisa aparecer: [x] concluída, [ ] pendente.
Objetivo: Complete a listagem: numere a partir de 1 e mostre [x] ou [ ] conforme t["concluida"].
Missão 4 de 7 · 30 XP
Missão 4: concluir sem quebrar
Concluir é: pedir o número, converter com segurança e marcar concluida = True. Número inválido não pode derrubar o sistema.
Objetivo: Complete o try/except: converta a escolha com int(), marque a tarefa e responda Concluída!; se não for número, mostre Número inválido.
O teste vai digitar por você, nesta ordem: 1
Missão 5 de 7 · 30 XP
Missão 5: salvar no arquivo
O programa fecha, a memória some, o arquivo fica. Cada linha do tarefas.txt guarda uma tarefa no formato status;texto (1 = concluída, 0 = pendente).
Objetivo: Complete salvar_tarefas com with open no modo w e uma linha por tarefa; depois confira lendo o arquivo.
Missão 6 de 7 · 30 XP
Missão 6: carregar ao abrir
Na abertura, o sistema lê o tarefas.txt e reconstrói a lista de dicionários. Se o arquivo ainda não existe, começa com a lista vazia, sem erro.
Objetivo: Complete carregar_tarefas: leia cada linha, separe com split(";", 1) e reconstrua o dicionário; trate FileNotFoundError devolvendo lista vazia.
Missão 7 de 7 · 40 XP
Missão 7: o sistema completo
A missão final junta tudo. O teste simula uma sessão inteira de uso: adiciona duas tarefas, lista, conclui a primeira, remove a segunda e sai. O esqueleto está montado; faltam as duas funções do arquivo.
Objetivo: Complete salvar_tarefas e carregar_tarefas (missões 5 e 6) para o sistema inteiro funcionar de ponta a ponta.
O teste vai digitar por você, nesta ordem: 1 Comprar pão 1 Estudar Python 2 3 1 4 2 5