Найдите, пожалуйста, ошибку в коде задачи:
Очередь с защитой от ошибок Реализуйте структуру данных "очередь". Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
push n — добавить в очередь число n (значение n задаётся после команды). Программа должна вывести ok; pop — удалить из очереди первый элемент. Программа должна вывести его значение; front — программа должна вывести значение первого элемента, не удаляя его из очереди; size — программа должна вывести количество элементов в очереди; clear — программа должна очистить очередь и вывести ok; exit — программа должна вывести bye и завершить работу. Перед исполнением операций front и pop программа должна проверять, содержится ли в очереди хотя бы один элемент. Если во входных данных встречается операция front или pop и при этом очередь пуста, то программа должна вместо числового значения вывести строку error.
Входные данные
Вводятся команды управления очередью, по одной команде в строке. Среди них обязательно присутствует команда exit.
Выходные данные
Требуется вывести протокол работы очереди, по одному сообщению в строке.
Примеры Ввод
push 1 front exit
Вывод ok 1 bye
Ввод size push 1 size push 2 size push 3 size exit
Вывод 0 ok 1 ok 2 ok 3 bye
l = 0
h = 0
q = []
res = []
stack = []
while True:
command, *args = input().split()
if command == "size":
res.append(len(stack))
elif command == "front":
if len(stack) == 0:
res.append('1')
else:
res.append(stack[-1])
elif command == "pop":
if len(stack) == 0:
res.append('error')
else:
res.append(stack.pop())
elif command == "clear":
stack.clear()
res.append("ok")
elif command == "push":
stack.append(int(args[0]))
res.append("ok")
elif command == "exit":
res.append("bye")
break
print(*res,sep='\n')