-
Notifications
You must be signed in to change notification settings - Fork 0
/
1-5-9.py
43 lines (39 loc) · 3.17 KB
/
1-5-9.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'''
https://stepik.org/lesson/24461/step/9?unit=6767
Вам дается последовательность целых чисел и вам нужно ее обработать и вывести на экран сумму первой пятерки чисел из этой последовательности, затем сумму второй пятерки, и т. д.
Но последовательность не дается вам сразу целиком. С течением времени к вам поступают её последовательные части. Например, сначала первые три элемента, потом следующие шесть, потом следующие два и т. д.
Реализуйте класс Buffer, который будет накапливать в себе элементы последовательности и выводить сумму пятерок последовательных элементов по мере их накопления.
Одним из требований к классу является то, что он не должен хранить в себе больше элементов, чем ему действительно необходимо, т. е. он не должен хранить элементы, которые уже вошли в пятерку, для которой была выведена сумма.
Класс должен иметь следующий вид
class Buffer:
def __init__(self):
# конструктор без аргументов
def add(self, *a):
# добавить следующую часть последовательности
def get_current_part(self):
# вернуть сохраненные в текущий момент элементы последовательности в порядке, в котором они были
# добавлены
Пример работы с классом
buf = Buffer()
buf.add(1, 2, 3)
buf.get_current_part() # вернуть [1, 2, 3]
buf.add(4, 5, 6) # print(15) – вывод суммы первой пятерки элементов
buf.get_current_part() # вернуть [6]
buf.add(7, 8, 9, 10) # print(40) – вывод суммы второй пятерки элементов
buf.get_current_part() # вернуть []
buf.add(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) # print(5), print(5) – вывод сумм третьей и четвертой пятерки
buf.get_current_part() # вернуть [1]
Обратите внимание, что во время выполнения метода add выводить сумму пятерок может потребоваться несколько раз до тех пор, пока в буфере не останется менее пяти элементов.
'''
class Buffer:
def __init__(self):
self.tmpList = []
def add(self, *a):
for item in a:
self.tmpList.append(item)
if (len(self.tmpList)) == 5:
print (sum(self.tmpList))
self.tmpList = []
def get_current_part(self):
return self.tmpList