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

... break

... print(stuff.capitalize())

...

String to capitalize [type q to quit]: test

Test

String to capitalize [type q to quit]: hey, it works

Hey, it works

String to capitalize [type q to quit]: q

>>>

Пропускаем итерации

с помощью continue

Иногда вам нужно не прерывать весь цикл, а только пропустить по какой-то при-

чине одну итерацию. Рассмотрим воображаемый пример: считаем целое число,

выведем на экран его значение в квадрате, если оно четное, и пропустим его, если

оно нечетное. Мы даже добавим несколько комментариев. И вновь для выхода из

цикла используем строку "q":

>>> while True:

... value = input("Integer, please [q to quit]: ")

... if value == 'q': # выход

... break

... number = int(value)

... if number % 2 == 0: # нечетное число

... continue

... print(number, "squared is", number*number)

...

Integer, please [q to quit]: 1

1 squared is 1

Integer, please [q to quit]: 2

Integer, please [q to quit]: 3

3 squared is 9

108

Глава 4. Корочка Python: структуры кода

Integer, please [q to quit]: 4

Integer, please [q to quit]: 5

5 squared is 25

Integer, please [q to quit]: q

>>>

Проверяем, завершился ли цикл заранее,

с помощью else

Если цикл while завершился нормально (без вызова break), управление передается

в опциональный блок else. Вы можете использовать его в цикле, где выполняете

некоторую проверку и прерываете цикл, как только проверка успешно выполня-

ется. Блок else выполнится в том случае, если цикл while будет пройден полностью,

но искомый объект не будет найден:

>>> numbers = [1, 3, 5]

>>> position = 0

>>> while position < len(numbers):

... number = numbers[position]

... if number % 2 == 0:

... print('Found even number', number)