└── To-do-list /To-do-list: -------------------------------------------------------------------------------- 1 | python 2 | class ToDoList: 3 | def __init__(self): 4 | self.tasks = [] 5 | 6 | def add_task(self, task): 7 | self.tasks.append({"task": task, "completed": False}) 8 | print(f'Задача "{task}" добавлена.') 9 | 10 | def remove_task(self, task_number): 11 | if 0 <= task_number < len(self.tasks): 12 | removed_task = self.tasks.pop(task_number) 13 | print(f'Задача "{removed_task["task"]}" удалена.') 14 | else: 15 | print("Неверный номер задачи.") 16 | 17 | def mark_completed(self, task_number): 18 | if 0 <= task_number < len(self.tasks): 19 | self.tasks[task_number]["completed"] = True 20 | print(f'Задача "{self.tasks[task_number]["task"]}" выполнена.') 21 | else: 22 | print("Неверный номер задачи.") 23 | 24 | def view_tasks(self): 25 | if not self.tasks: 26 | print("Список задач пуст.") 27 | else: 28 | for i, task in enumerate(self.tasks): 29 | status = "✓" if task["completed"] else "✗" 30 | print(f'{i + 1}. [{status}] {task["task"]}') 31 | 32 | def main(): 33 | todo_list = ToDoList() 34 | 35 | while True: 36 | print("\n1. Добавить задачу") 37 | print("2. Удалить задачу") 38 | print("3. Отметить задачу как выполненную") 39 | print("4. Показать все задачи") 40 | print("5. Выйти") 41 | 42 | choice = input("Выберите действие: ") 43 | 44 | if choice == "1": 45 | task = input("Введите описание задачи: ") 46 | todo_list.add_task(task) 47 | elif choice == "2": 48 | task_number = int(input("Введите номер задачи для удаления: ")) - 1 49 | todo_list.remove_task(task_number) 50 | elif choice == "3": 51 | task_number = int(input("Введите номер задачи для отметки как выполненную: ")) - 1 52 | todo_list.mark_completed(task_number) 53 | elif choice == "4": 54 | todo_list.view_tasks() 55 | elif choice == "5": 56 | print("Выход из программы") 57 | break 58 | else: 59 | print("Неверный выбор, попробуйте снова.") 60 | 61 | if __name__ == "__main__": 62 | main() 63 | --------------------------------------------------------------------------------