Методическая разработка урока
Элективный курс: Основы программирования на Python
Уровень: Программирование для начинающих
Циклы — это инструкции, выполняющие одну и туже последовательность действий, пока действует определенное условие.
В реальной жизни мы довольно часто сталкиваемся с циклами. Например, ходьба человека — вполне циклическое явление: шаг левой, шаг правой, снова левой-правой и т.д., пока не будет достигнута некая цель (например, школа или магазин). В компьютерных программах наряду с инструкциями ветвлениями (т.е. выбором пути действия) также существуют инструкции циклов (повторения действия). Если бы инструкций цикла не существовало, то тогда пришлось бы много раз вставлять в программу один и тот же код подряд столько раз, сколько нужно выполнить одинаковую последовательность действий.
Универсальным организатором цикла в языке программирования Python (как и во многих других) является инструкция while. Слово "while" с английского языка переводится как "пока" (вроде как "пока действует что-то, делать то-то"). Конструкцию инструкции while на языке Python можно описать следующей схемой:
Эта схема приблизительна, т.к. логическое выражение в заголовке цикла while может быть более сложным, а изменяться может переменная (или выражение) b.
Может возникнуть вопрос: "Зачем изменять a или b?". Когда выполнение программного кода доходит до цикла while, выполняется логическое выражение в заголовке и, если было получено True (истина), выполняются вложенные выражения. После поток выполнения программы снова возвращается в заголовок цикла while, и снова проверяется условие. Если условие никогда не будет ложным, то не будет причин остановки цикла и программа «зациклится». Чтобы этого не произошло, необходимо организовать момент выхода из цикла — ложность выражения в заголовке. Так, например, изменяя значение какой-нибудь переменной в теле цикла, можно довести логическое выражение до ложности.
Эту изменяемую переменную, доводящую условие до ложности, обычно называют счетчиком. Как и всякой переменной ей можно давать произвольные имена, однако очень часто используют букву i. Простейший цикл на языке программирования Python может выглядеть так:
str1 = "+"
i = 0
while i < 10:
print (str1)
i = i + 1
Примечание: в Python 3.0 аргумент команды print заключается в скобки. Пишется так: print (str1)
В последней строчке данного скрипта происходит увеличение значения переменной i на единицу, поэтому с каждым оборотом цикла она на нее и увеличивается. Когда будет достигнуто значение 10, логическое выражение i < 10 даст ложный результат, выполнение тела цикла будет прекращено, а поток выполнения программы перейдет на команды следующие за всей конструкцией цикла. Результатом выполнения скрипта приведенного выше будет вывод на экран десяти знаков + в столбик. Если увеличивать счетчик в теле цикла не на единицу, а на 2, то будет выведено только пять знаков, т.к цикл сделает лишь пять оборотов.
Более сложный пример с использованием цикла:
fib1 = 0
fib2 = 1
print (fib1)
print (fib2)
n = 10
i = 0
while i < n:
fib_sum = fib1 + fib2
print (fib_sum)
fib1 = fib2
fib2 = fib_sum
i = i + 1
Этот пример выводит числа Фибоначчи — ряд чисел, в котором каждое последующее число равно сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13 и т.д. Скрипт выводит двенадцать членов ряда: два (0 и 1) выводятся вне цикла и десять выводятся в результате выполнения цикла.
Подробности. Вводятся две переменные (fib1 и fib2), которым присваиваются начальные значения. Вводится переменная (n) и счетчик (i), между которыми те или иные математические отношения формируют желаемое число витков цикла. Внутри цикла создается переменная fib_sum, которой присваивается сумма двух предыдущих членов ряда, и ее же значение выводится на экран. Далее обновляются значения fib1 и fib2 (для следующего витка цикла), а также увеличивается значение счетчика.
Практическая работа
- Создайте скрипт на языке программирования Python, выводящий ряд чисел Фибоначчи (см. пример выше). Запустите его на выполнение. Затем измените код так, чтобы выводился ряд чисел Фибоначчи, начиная с пятого члена ряда и заканчивая двадцатым.
- Напишите цикл, выводящий ряд четных чисел от 0 до 20. Затем, каждое третье число в ряде от -1 до -21.
- Самостоятельно придумайте скрипт на языке программирования Python, в котором бы использовался цикл while.