Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе. |
Итерации
10.7.1. Циклы подсчета
Например, для подсчета числа элементов в списке, мы можем написать следующий цикл for:
count = 0 for itervar in [3, 41, 12, 9, 74, 15]: count = count + 1 print 'Count: ', count
Мы установили начальное значение для переменной count равным нулю перед тем, как начать выполнение цикла. Наша итерационная переменная называется itervar.
В теле цикла мы добавляем 1 к текущему значению count для каждого значения в списке. К моменту завершения цикла, значение переменной count будет содержать количество элементов.
Другой простой цикл подсчитывает сумму набора чисел:
total = 0 for itervar in [3, 41, 12, 9, 74, 15]: total = total + itervar print 'Total: ', total
Переменная total накапливает сумму всех чисел, иногда ее называют сумматором (accumulator).
На практике для подсчета числа элементов используют встроенную функцию len(), а для вычисления суммы элементов – sum().
10.7.2. Циклы максимума и минимума
Для нахождения наибольшего значения в списке или последовательности, создадим следующий цикл:
largest = None print 'Before:', largest for itervar in [3, 41, 12, 9, 74, 15]: if largest is None or itervar > largest : largest = itervar print 'Loop:', itervar, largest print 'Largest:', largest
Результат работы программы будет иметь вид:
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 74
Переменная largest содержит наибольшее значение, которое существует на данный момент. Перед запуском цикла мы устанавливаем largest в None.
None – это специальная константа, которая может храниться в переменной и маркировать ее как "пустую".
Перед началом цикла, наибольшим значением является None. На первой итерации цикла значение 3 больше None, мы устанавливаем largest равным 3. На последней итерации в largest содержится наибольшее значение.
Код для вычисления наименьшего значения:
smallest = None print 'Before:', smallest for itervar in [3, 41, 12, 9, 74, 15]: if smallest is None or itervar < smallest: smallest = itervar print 'Loop:', itervar, smallest print 'Smallest:', smallest
Снова smallest содержит наименьшее значение.
Далее следует простая версия встроенной в Python функции min():
def min(values): smallest = None for value in values: if smallest is None or value < smallest: smallest = value return smallest
В этой функции меньше кода, мы удалили все инструкции print.
10.9. Словарь
Сумматор (accumulator): переменная в цикле, которая используется для накопления суммарного результата.
Счетчик (counter): переменная, используемая в цикле для подсчета количества встречаемости какого-либо события. Мы инициализируем счетчик нулевым значением, затем инкрементируем его при наступлении какого-либо события.
Декремент (decrement): уменьшение значения (обычно на единицу).
Инициализация (initialize): присваивание начального значения переменной, которая в дальнейшем будет инкрементироваться (увеличиваться, часто на единицу).
Бесконечный цикл (infinite loop): цикл, в котором условие завершения никогда не наступят или для которого нет условия завершения.
Итерация (iteration): повторное выполнение множества инструкций, используемое при рекурсивном вызове функции или цикла.