... 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)