Для описания повторяющихся операций в программировании используются циклы. Смысл циклов заключается в том, что они повторяют определенный набор действий. При этом при каждом повторении что-то может меняться.
Цикл while (ПОКА)
В случае с циклом ПОКА набор команд повторяется, ПОКА что-то происходит (или пока что-то не произойдет):
Синтаксис цикла ПОКА в Python прост. Командное слово для цикла – while, а команды цикла записываются на отступе от строки, инициализирующей цикл.
В данном примере значение переменной i будет печататься всякий раз, пока она не станет больше 10-ти. Последняя строка в цикле – i +=1 – отвечает за постепенный рост величины переменной. Если бы этой строки не было, цикл выполнялся бы бесконечно – это означало бы программную ошибку (и, очевидно, ошибку на экзамене).
Цикл for (ДЛЯ)
Второй цикл, который очень часто встречается в заданиях экзамена – это цикл ДЛЯ. Его отличие от ПОКА проще показать на примере:
«пишу реферат, пока не напишу до конца»
«пишу реферат с 8-ми до 10-ти»
Прекращение цикла ПОКА – это логическое условие («написал весь реферат»), а у цикла ДЛЯ задаются четкие границы. Обычно эти границы задаются с помощью переменной, которая меняет свое значение с некоторым шагом, и определенное значение является условием для выхода:
В данном случае переменная i будет автоматически менять свое значение каждый раз, увеличиваясь на единицу (это внутреннее свойство и смысл цикла ДЛЯ). Такая переменная называется итерационной, т.к. она определяет итерации цикла. На Python синтаксис цикла ДЛЯ выглядит следующим образом:
# цикл запустится n раз с i = 0, 1, 2, 3, …, n-1
Конструкция for i in range() заслуживает особого внимания. С помощью функции range() в Python можно задавать диапазон значений, которые будет принимать любая численная переменная с некоторым шагом. Эту конструкцию можно использовать как для создания наборов таких значений, так и для генерации итерационной переменной. Последнее ее применение наиболее эффективно и будет крайне полезным практически во всех заданиях на программирование в ОГЭ. У функции range всего может быть три аргумента: начало, конец, шаг. Чаще всего используются только два – тогда она обозначают начало и конец с шагом 1: range(m, n). При этом при перечислении значений начало всегда ВКЛЮЧАЕТСЯ, а конец – ИСКЛЮЧАЕТСЯ из набора.
Пример.
Строка
будет генерировать значения 4, 5, 6, 7, 8 (включая 4, но не включая 9)
Рассмотрим пример задания экзамена.
Задание на работу с циклом.
Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на пяти языках программирования.
Решение.
В программе используется цикл for, в рамках которого при каждом повторении к искомой переменной s добавляется 10. Начальное значение переменной s равно 0. Получается, что после работы программы итоговое значение переменной s можно описать формулой s = 0 +n*10, где n – это количество повторений цикла.
Определить количество повторений цикла можно из границ функции range.
for k in range (6,13): - получается, что k будет принимать значения 6, 7, 8, 9, 10, 11, 12. Всего 7 повторений цикла.
Посчитаем итоговое значение s: s = 0 +7*10 = 70.
Ответ: 70