| | import sys |
| |
|
| | |
| |
|
| | class TodoApp: |
| | def __init__(self): |
| | self.todos = [] |
| |
|
| | def add_task(self, task): |
| | """Add a new task to the todo list.""" |
| | if task: |
| | self.todos.append({'task': task, 'completed': False}) |
| | print(f"Added task: {task}") |
| | else: |
| | print("Task cannot be empty.") |
| |
|
| | def delete_task(self, index): |
| | """Delete a task by its index.""" |
| | if 0 <= index < len(self.todos): |
| | deleted = self.todos.pop(index) |
| | print(f"Deleted task: {deleted['task']}") |
| | else: |
| | print("Invalid task index.") |
| |
|
| | def mark_complete(self, index): |
| | """Mark a task as complete by its index.""" |
| | if 0 <= index < len(self.todos): |
| | self.todos[index]['completed'] = True |
| | print(f"Marked as complete: {self.todos[index]['task']}") |
| | else: |
| | print("Invalid task index.") |
| |
|
| | def list_tasks(self): |
| | """List all tasks with their status.""" |
| | if not self.todos: |
| | print("No tasks available.") |
| | for i, todo in enumerate(self.todos): |
| | status = "Completed" if todo['completed'] else "Pending" |
| | print(f"{i + 1}. {todo['task']} - {status}") |
| |
|
| | def run(self): |
| | """Run the todo application in a loop.""" |
| | while True: |
| | print("\nTodo App Menu:") |
| | print("1. Add Task") |
| | print("2. Delete Task") |
| | print("3. Mark Task as Complete") |
| | print("4. List Tasks") |
| | print("5. Quit") |
| | choice = input("Enter your choice (1-5): ").strip() |
| |
|
| | if choice == '1': |
| | task = input("Enter task: ").strip() |
| | self.add_task(task) |
| | elif choice == '2': |
| | self.list_tasks() |
| | try: |
| | index = int(input("Enter task number to delete: ")) - 1 |
| | self.delete_task(index) |
| | except ValueError: |
| | print("Invalid input. Please enter a number.") |
| | elif choice == '3': |
| | self.list_tasks() |
| | try: |
| | index = int(input("Enter task number to mark complete: ")) - 1 |
| | self.mark_complete(index) |
| | except ValueError: |
| | print("Invalid input. Please enter a number.") |
| | elif choice == '4': |
| | self.list_tasks() |
| | elif choice == '5': |
| | print("Exiting Todo App.") |
| | sys.exit(0) |
| | else: |
| | print("Invalid choice. Please try again.") |
| |
|
| | if __name__ == "__main__": |
| | app = TodoApp() |
| | app.run() |