Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 7371 / 1135 | Длительность: 09:49:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 5:

Итерации

< Самостоятельная работа 1 || Самостоятельная работа 5: 123

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): повторное выполнение множества инструкций, используемое при рекурсивном вызове функции или цикла.

< Самостоятельная работа 1 || Самостоятельная работа 5: 123
Алексей Виноградов
Алексей Виноградов

Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе.

Петр Олейников
Петр Олейников

Данные файлы неоходимы не только для самостоятельных работ, но и для тестов. А по ссылкам в лекциях они не доступны, выдает ошибку 404.