1
resposta

[Projeto] Gerenciador de tarefas

Projeto bem desafiador mas excelente pra treinar a lógica. Ainda muitos pontos pra melhorar no código (refatorar, utilizar métodos diferentes) mas preciso avançar no curso kkk

import os
import sys

lista_tarefas = []

def main(lista_tarefas):
    os.system('cls')
    print('Gerenciador de Tarefas')
    print()
    print('1. Adicionar tarefa ')
    print('2. Visualizar tarefas ')
    print('3. Remover tarefa ')
    print('4. Sair ')
    print()
   
    try:
        opcao_escolhida = int(input('Escolha uma opção: '))
    except ValueError:
        os.system('cls')
        print('Opção inválida. Tente novamente')
        input('Pressione ENTER para retornar ao Menu Inicial ')
        main(lista_tarefas)

    if opcao_escolhida == 1:
        adicionar_tarefa(lista_tarefas)
    elif opcao_escolhida == 2:
        visualizar_tarefas(lista_tarefas)
    elif opcao_escolhida == 3:
        if not lista_tarefas:
            os.system('cls')
            print('A lista de tarefas está vazia. Não há nada para remover. ')
            input('Pressione ENTER para retornar ao Menu Inicial ')
            main(lista_tarefas)
        else: 
            remover_tarefa(lista_tarefas)
    elif opcao_escolhida == 4:
        print('Até a próxima...')
        sys.exit()
    return lista_tarefas
        

def adicionar_tarefa(lista_tarefas):
    os.system('cls')
    tarefa_usuario = input('Digite a tarefa que deseja inserir: ')
    lista_tarefas.append(tarefa_usuario)
    print(f'Tarefa {tarefa_usuario} inserida com sucesso ')
    main(lista_tarefas)
    return lista_tarefas

def visualizar_tarefas(lista_tarefas):
    os.system('cls')
    print('Lista de tarefas: ')
    for tarefa in lista_tarefas:
        print(f'{lista_tarefas.index(tarefa) + 1}. {tarefa}')
    print()
    input('Pressione ENTER para retornar ao Menu Inicial ')
    main(lista_tarefas)

def remover_tarefa(lista_tarefas):
    os.system('cls')
    print('Lista de tarefas: ')
    for tarefa in lista_tarefas:
        print(f'{lista_tarefas.index(tarefa) + 1}. {tarefa}')
    print()
    tarefa_usuario = int(input('Digite o número da tarefa que deseja remover: '))

    try:
        if len(lista_tarefas) < tarefa_usuario:
            print('Tarefa inexistente. ')
            input('Pressione ENTER para retornar ao Menu Inicial')
            main(lista_tarefas)
        else:
                os.system('cls')
                print(f'Tarefa "{tarefa_usuario} - {lista_tarefas[tarefa_usuario - 1]}" foi removida com sucesso ')
                lista_tarefas.pop(tarefa_usuario - 1)
                input('Pressione ENTER para retornar ao Menu Inicial')
                main(lista_tarefas)
                return lista_tarefas
    except ValueError:
        input('Entrada Inválida. Pressione ENTER para retornar ao Menu Inicial')
        main(lista_tarefas)


main(lista_tarefas)
1 resposta

Olá, estudante, como vai?

Gostei bastante da forma como você estruturou o seu gerenciador de tarefas. A lógica principal de adicionar, visualizar e remover está bem implementada, além de você já ter tratado situações como lista vazia e entradas inválidas, o que deixa o programa mais robusto.

Continue compartilhando seus projetos aqui no fórum, é sempre bom acompanhar sua evolução. O espaço está à disposição para trocar ideias e sugestões.

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