Основы Python
Теория: Агрегация данных (Числа)
Отдельный класс задач, который не обходится без циклов, называется агрегированием данных. К таким задачам относятся: поиск максимального или минимального значения, суммы, среднего арифметического. В их случае результат зависит от всего набора данных. В этом уроке разберем, как агрегация применяется к числам и строкам.
Допустим, нам нужно найти сумму набора чисел. Реализуем функцию, которая складывает числа в указанном диапазоне, включая границы. Диапазон — ряд чисел от конкретного начала до определенного конца. Например, диапазон [1, 10] включает целые числа от одного до десяти.
Пример:
Чтобы реализовать такой код, понадобится цикл, так как сложение чисел — это итеративный процесс, то есть повторяется для каждого числа. Количество итераций зависит от размера диапазона. Вот код этой функции:
Структура цикла здесь стандартная: есть счетчик, который инициализируется начальным значением диапазона, цикл с условием остановки при достижении конца диапазона и изменение счетчика в конце тела цикла. Количество итераций в таком цикле равно finish - start + 1. Для диапазона [5, 7] — это 7 - 5 + 1, то есть три итерации.
Главные отличия от обычной обработки — логика вычислений результата. В задачах на агрегацию всегда есть переменная, которая хранит внутри себя результат работы цикла. В коде выше это sum. Она изменяется на каждой итерации цикла — прибавляется следующее число в диапазоне: sum = sum + i.
Этот процесс выглядит так:
У переменной sum есть начальное значение — с него начинается любая повторяющаяся операция. В примере выше — это 0.
В математике есть понятие нейтральный элемент, и у каждой операции он свой. Операция с этим элементом не изменяет то значение, над которым работает. Например, в сложении любое число плюс ноль дает само число. При вычитании — то же самое. У конкатенации тоже есть нейтральный элемент — это пустая строка: '' + 'one' будет 'one'.








