Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 4653 / 500 | Длительность: 21:48: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
Ксения Шошина
Ксения Шошина

курс Программирование на Python

Илья Кизилов
Илья Кизилов

В лекции приводится программа для сортировки слов по их длинне. В коде ошибка. Я исправил так:

def sort_by_length(words):

words = words.split()

t = []

for word in words:

t.append((len(word), word))

t.sort(reverse=True)

res = []

for length, word in t:

res.append(word)

return res

print(sort_by_length(words))

 

Кто ещё как сделал?

 

Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша
Андрей Микульский
Андрей Микульский
Молдова, Республика, Комрат, Комратский Государственный Университет