... position += 1
... else: # break not called
... print('No even number found')
...
No even number found
Такое использование ключевого слова else может оказаться нелогичным. Рассматривайте
его как проверку на прерывание цикла.
Выполняем итерации с помощью for
В Python итераторы часто используются по одной простой причине. Они позво-
ляют вам проходить структуры данных, не зная, насколько эти структуры велики
и как реализованы. Вы даже можете пройти по данным, которые были созданы во
время работы программы, что позволяет обработать потоки данных, которые в про-
тивном случае не поместились бы в память компьютера.
Вполне возможно пройти по последовательности таким образом:
>>> rabbits = ['Flopsy', 'Mopsy', 'Cottontail', 'Peter']
>>> current = 0
>>> while current < len(rabbits):
... print(rabbits[current])
... current += 1
Выполняем итерации с помощью for
109
...
Flopsy
Mopsy
Cottontail
Peter
Однако существует более характерный для Python способ решения этой задачи:
>>> for rabbit in rabbits:
... print(rabbit)
...
Flopsy
Mopsy
Cottontail
Peter
Списки вроде rabbits являются одними из итерабельных объектов в Python
наряду со строками, кортежами, словарями и некоторыми другими элементами.
Итерирование по кортежу или списку возвращает один элемент за раз. Итериро-
вание по строке возвращает один символ за раз, как показано здесь:
>>> word = 'cat'
>>> for letter in word:
... print(letter)
...
c
a
t
Итерирование по словарю (или его функции keys()) возвращает ключи. В этом
примере ключи являются типами карт в настольной игре Clue (за пределами
Северной Америки она называется CluedoAmerica):
>>> accusation = {'room': 'ballroom', 'weapon': 'lead pipe',