Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Gerenciador de tarefas

import os

tarefas = []

def mostrar_opcoes():
    print("1. Adicionar tarefa \n2. Visualizar tarefas \n3. Remover tarefa \n4. Sair")

def selecionar_opcao():
    opcao = int(input("\nEscolha uma opção: "))
    match opcao:
        case 1:
            adicionar_tarefa()
        case 2:
            visualizar_tarefas()
        case 3:
            remover_tarefa()
        case 4:
            sair()
        case _:
            tratar_erro("Erro: Opção inválida! Escolha uma opção entre 1 e 4.")

def adicionar_tarefa():
    titulo_tarefa("Adicionar Tarefa")
    nome_tarefa = input("Digite a tarefa: ")
    tarefas.append(nome_tarefa)
    print("Tarefa adicionada!")
    menu_principal()

def visualizar_tarefas():
    titulo_tarefa("Visualizar Tarefa")
    if len(tarefas) > 0:
        print("Tarefas: ")
        for i in range(len(tarefas)):
            print(f"{i+1}. {tarefas[i]}")
        menu_principal()
    else:
        tratar_erro("Erro: Nenhuma tarefa para visualizar.")

def remover_tarefa():
    titulo_tarefa("Remover Tarefa")
    tarefa = input("Digite o número da tarefa a ser removida: ")
    if len(tarefas) == 0:
        tratar_erro("Erro: Nenhuma tarefa para remover.")
    else:
       valida_entrada_remocao_tarefa(tarefa)

def valida_entrada_remocao_tarefa(tarefa):
    try:
        numero_tarefa = int(tarefa)
    except:
        tratar_erro("Erro: Entrada inválida! Digite um número.")
    else:
        valida_remocao_tarefa(numero_tarefa)

def valida_remocao_tarefa(numero_tarefa):
    try:
        tarefa_removida = tarefas.pop(numero_tarefa-1)
    except:
        tratar_erro(f"Erro: Não foi encontrada atividade de número {numero_tarefa}")
    else:
        print(f"Tarefa '{tarefa_removida}' removida!")
        menu_principal()

def sair():
    print("Saindo do gerenciador de tarefas. Até mais!")

def titulo_tarefa(titulo):
    os.system("cls")
    print(f"{titulo}\n")

def tratar_erro(mensagem):
    input(f"{mensagem} Aperte qualquer tecla para continuar. ")
    main()

def menu_principal():
    input("\nAperte qualquer tecla para continuar ")
    main()

def main():
    os.system("cls")
    mostrar_opcoes()
    selecionar_opcao()

if __name__ == "__main__":
    main()
1 resposta
solução!

Oi, Christian! Como vai?

Agradeço por compartilhar.

Gostei da sua análise e da forma como você organizou o projeto, principalmente no uso de funções para separar responsabilidades e no cuidado com o tratamento de erros, o que é importante para tornar o código mais legível e fácil de manter. Seu fluxo de navegação pelo menu também mostra um bom entendimento da proposta da atividade.

Continue explorando esse caminho, pois sua evolução está clara e consistente.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!