Заполнить очередь случайными числами из интервала [-20; 40]. Найти сумму последнего нечетного элемента и третьего элемента очереди. Результат поместить в очередь. Удалить 4 элемент из очереди. После выполнения каждой операции выводить содержимое очереди на экран. (ЧЕРЕЗ ПРОЦЕДУРЫ)
import random
def fill_queue(q, n):
for _ in range(n):
q.put(random.randint(-20, 40))
print(list(q.queue))
def sum_and_put_result(q):
lst = list(q.queue)
last_odd = None
third_elem = None
for i in range(len(lst)-1, -1, -1):
if lst[i] % 2 != 0:
last_odd = lst[i]
break
if last_odd is None:
last_odd = 0
if len(lst) >= 3:
third_elem = lst[2]
result = last_odd + third_elem
q.put(result)
print(list(q.queue))
def remove_4th_element(q):
if len(q.queue) >= 4:
q_list = list(q.queue)
q_list.pop(3)
q.queue.clear()
for elem in q_list:
q.put(elem)
print(list(q.queue))
q = Queue()
fill_queue(q, 10)
sum_and_put_result(q)
remove_4th_element(q)
Пример вывода:
[5][5, 8]
[5, 8, 32]
[5, 8, 32, 18]
[5, 8, 32, 18, -15]
[5, 8, 32, 18, -15, 11]
[5, 8, 32, 18, -15, 11, 7]
[5, 8, 32, 18, -15, 11, 7, 19]
[5, 8, 32, 18, -15, 11, 7, 19, 26]
[5, 8, 32, 18, -15, 11, 7, 19, 26, 14]
[5, 8, 32, 18, -15, 11, 7, 19, 26, 14, 30]
[5, 8, 32, 18, -15, 11, 7, 19, 26, 14, 30, 30]
[5, 8, 32, 18, -15, 11, 7, 19, 26, 14, 30, 30, 30]
[5, 8, 32, -15, 11, 7, 19, 26, 14, 30, 30, 30]
[5, 8, 32, -15, 11, 7, 26, 14, 30, 30, 30]