-
Notifications
You must be signed in to change notification settings - Fork 216
Open
Description
import os
import json
class TaskManager:
def init(self, filename="tasks.json"):
self.filename = filename
self.tasks = []
self.load_tasks()
def load_tasks(self):
if os.path.exists(self.filename):
with open(self.filename, "r") as file:
self.tasks = json.load(file)
else:
self.tasks = []
def save_tasks(self):
with open(self.filename, "w") as file:
json.dump(self.tasks, file, indent=4)
def add_task(self, title, priority="Medium"):
self.tasks.append({
"title": title,
"priority": priority,
"completed": False
})
self.save_tasks()
def complete_task(self, task_id):
if 0 <= task_id < len(self.tasks):
self.tasks[task_id]["completed"] = True
self.save_tasks()
def delete_task(self, task_id):
if 0 <= task_id < len(self.tasks):
del self.tasks[task_id]
self.save_tasks()
def list_tasks(self):
if not self.tasks:
print("Nenhuma tarefa disponível!")
else:
print("\nTarefas:")
for i, task in enumerate(self.tasks):
status = "Concluída" if task["completed"] else "Pendente"
print(f"[{i}] {task['title']} - Prioridade: {task['priority']} - Status: {status}")
def main():
manager = TaskManager()
while True:
print("\n--- Gerenciador de Tarefas ---")
print("1. Adicionar Tarefa")
print("2. Listar Tarefas")
print("3. Marcar Tarefa como Concluída")
print("4. Excluir Tarefa")
print("5. Sair")
choice = input("Escolha uma opção: ").strip()
if choice == "1":
title = input("Título da Tarefa: ").strip()
priority = input("Prioridade (Baixa, Média, Alta): ").capitalize()
if priority not in ["Baixa", "Média", "Alta"]:
priority = "Média"
manager.add_task(title, priority)
print("Tarefa adicionada com sucesso!")
elif choice == "2":
manager.list_tasks()
elif choice == "3":
manager.list_tasks()
try:
task_id = int(input("Digite o ID da Tarefa a marcar como concluída: "))
manager.complete_task(task_id)
print("Tarefa marcada como concluída!")
except (ValueError, IndexError):
print("ID inválido!")
elif choice == "4":
manager.list_tasks()
try:
task_id = int(input("Digite o ID da Tarefa a excluir: "))
manager.delete_task(task_id)
print("Tarefa excluída com sucesso!")
except (ValueError, IndexError):
print("ID inválido!")
elif choice == "5":
print("Saindo...")
break
else:
print("Opção inválida! Tente novamente.")
if name == "main":
main()
Metadata
Metadata
Assignees
Labels
No labels