/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module25/07_stack/main.py
65 строк
2 KB
Eugene Vorontsov
Copy repo python basic
03 фев 2025, 20:23
03 фев 2025, 20:23
a8fce4a
Код
Авторство
О чём код?
class Stack: """Класс в котором задачи добавляются или удаляются по типу стэка.""" def __init__(self): self.__st = [] def __str__(self): """Вывод на экран задач""" return '; '.join(self.__st) def push(self, elem): """Добавление задач в стек""" self.__st.append(elem) def pop(self): """Удаление из стэка""" if len(self.__st) == 0: return None return self.__st.pop() class TaskManager: def __init__(self): self.task = dict() def __str__(self): """Вывод отсортированного по приоритету менеджера задач на экран """ display = [] if self.task: for i_priority in sorted(self.task.keys()): display.append('{prior} {task}\n'.format( prior=str(i_priority), task=self.task[i_priority] ) ) return ''.join(display) def new_task(self, task, priority): """Добавление задачи в стэк""" if priority not in self.task: self.task[priority] = Stack() self.task[priority].push(task) def delete_task(self, priority): """Удаление из стека самой правой задачи с номером приоритета priority (int) """ self.task[priority].pop() manager = TaskManager() manager.new_task("сделать уборку", 4) manager.new_task("помыть посуду", 4) manager.new_task("отдохнуть", 1) manager.new_task("поесть", 2) manager.new_task("сдать дз", 2) print('Менеджер задач:') print(manager) priority_number = int(input('Введите номер задачи, которую нужно удалить: ')) print() manager.delete_task(priority_number) print(manager)