1
resposta

[Projeto] Gerenciador de tarefas

import os

tarefas = [] #Criação da lista

def adicionar_tarefas():
    os.system('cls')
    print('<<<<<<<<<<<<<<<<  ADICIONAR NOVA TAREFA  >>>>>>>>>>>>>>>>>\n')

    novaTarefa = str(input('Digite o nome da tarefa: '))
    tarefas.append(novaTarefa)
    input(f'Tarefa | {novaTarefa} | adicionada com sucesso! Pressione ENTER para voltar ao menu!')

def visualizar_tarefas():
    os.system('cls')
    print('<<<<<<<<<<<<<<<<  TAREFAS  >>>>>>>>>>>>>>>>>\n')

    for i, tarefa in enumerate(tarefas,start=1):
        print(f'{i}. {tarefa}')

    input('\nPressione ENTER para voltar ao menu!')

def remover_tarefas():

    while True:  
        os.system('cls')
        print('<<<<<<<<<<<<<<<<  REMOVER TAREFA  >>>>>>>>>>>>>>>>>\n')


        for i, tarefa in enumerate(tarefas,start=1):
            print(f'{i}. {tarefa}')
  
        selectTarefa = input('Digite o número da tarefa para remover ou EXIT para voltar ao menu: ')

        try:
            if selectTarefa  == "EXIT":    
                break
            else:
                tarefas.pop(int(selectTarefa)-1)
                input('\nTarefa removida com sucesso. Pressione ENTER para voltar ao menu\n')
                break

        except ValueError:
                print('\nErro: Entrada inválida! Digite somente números!\n')
                input('Pressione ENTER para tentar novamente!')
                continue
        except IndexError:
                print('\nErro: Entrada inválida! Nenhuma tarefa para remover.!\n')
                input('Pressione ENTER para tentar novamente!')
                continue
            
def opcao_invalida():
    input('A opção digitada não é válida. Pressione ENTER para voltar ao menu.\n')

def opcoes_menu():
    try: 
        opcao = int(input('Escolha uma opção: '))
    except ValueError:
        opcao_invalida()
        return

    if opcao == 1:
        adicionar_tarefas()
    elif opcao == 2:
        visualizar_tarefas()
    elif opcao == 3:
        remover_tarefas()
    elif opcao == 4:
        input('\nPressione ENTER para sair do programa\n')
        return False
    else:
        opcao_invalida()

    return True  # continua o loop

def main(): #Menu principal do programa

    while True:
        os.system('cls')
        print('<<<<<<<<<<<<<<<<<<<<<<<<<<<  GERENCIADOR PESSOAL DE TAREFAS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n')
        print('1. Adicionar tarefa',
            '2. Visualizar tarefas',
            '3. Remover tarefa',
            '4. Sair',
            '',sep="\n")
        
        continuar = opcoes_menu()

        if continuar is False:
            break

if __name__ == "__main__":
    main()
1 resposta

Oi, Kelvin! Como vai?

Agradeço por compartilhar.

Gostei de como você organizou o projeto em funções como adicionar_tarefas(), visualizar_tarefas() e remover_tarefas(), deixando o menu mais limpo e fácil de manter. Também foi uma boa escolha usar try, except ValueError e except IndexError para tratar entradas inválidas do usuário.

Uma dica interessante para o futuro é usar o método .strip() junto com .upper() pra evitar problemas quando a pessoa digitar espaços ou letras minúsculas em opções como exit.


select_tarefa = input('Digite o numero da tarefa ou EXIT para voltar: ').strip().upper()

if select_tarefa == 'EXIT':
    print('Voltando ao menu')

Esse código remove espaços antes e depois do texto digitado e transforma a entrada em letras maiúsculas, então valores como exit, Exit ou EXIT funcionam da mesma forma. Continue praticando, seu projeto ficou bem estruturado.

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