Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 78

... break

... 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',