1
resposta

Gerenciador de tarefas

import os

tarefas = []

def adicionar_tarefa():
    os.system('cls')
    nome_tarefa = input("Digite a tarefa: ")
    tarefas.append(nome_tarefa)
    print("Tarefa adicionada!")
    retornar()

def retornar():
    input("Digite uma tecla para voltar ao menu principal: ")
    menu()

def visualizar_tarefas():
    os.system('cls')
    i = 0
    for tarefa in tarefas:
        i = i + 1
        print(f"{i}. {tarefa}")
        
    retornar()

def remover_tarefa():
    if not tarefas:
        print("Erro! Nenhuma tarefa para remover. Tente novamente!")
        retornar()
    else:
        try:
            id = int(input("Digite o nome da tarefa a ser removida: "))
            print(f"Tarefa '{tarefas[id - 1]}' removida!")
            tarefas.pop(id - 1)
            retornar()
        except ValueError:
            print("Erro! Indice inválido! Tente novamente!")
            retornar()
        except IndexError:
            print("Erro! Tarefa não encontrada! Tente Novamente!")
            retornar()

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

def menu():
    os.system('cls')
    print("1. Adicionar tarefa")
    print("2. Visualizar tarefas")
    print("3. Remover tarefa")
    print("4. Sair")
    opçao = int(input("Escolha uma opção: "))
    selecionar_opcao(opçao)

def selecionar_opcao(opçao):
    match opçao:
        case 1:
            adicionar_tarefa()
        case 2:
            visualizar_tarefas()
        case 3:
            remover_tarefa()
        case 4:
            sair()
        case _:
            print("Erro: Entrada invalida! Tente novamente.")
            retornar()


menu()
1 resposta

Olá, Luiz! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou a lista para armazenar tarefas com Python, utilizou muito bem o match/case para organizar o menu de opções e ainda compreendeu a importância da função para estruturar o programa de forma modular.

Uma dica interessante para o futuro é trabalhar com o enumerate() para simplificar a visualização das tarefas com índices. Assim:

def visualizar_tarefas():
    os.system('cls')
    for i, tarefa in enumerate(tarefas, start=1):
        print(f"{i}. {tarefa}")
    retornar()

Isso faz a numeração automática das tarefas sem precisar incrementar manualmente.

Conteúdos relacionados

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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