Цикл While. Урок 7

Методическая разработка урока
Элективный курс: Основы программирования на Python
Уровень: Программирование для начинающих

Циклы — это инструкции, выполняющие одну и туже последовательность действий, пока действует определенное условие.

В реальной жизни мы довольно часто сталкиваемся с циклами. Например, ходьба человека — вполне циклическое явление: шаг левой, шаг правой, снова левой-правой и т.д., пока не будет достигнута некая цель (например, школа или магазин). В компьютерных программах наряду с инструкциями ветвлениями (т.е. выбором пути действия) также существуют инструкции циклов (повторения действия). Если бы инструкций цикла не существовало, то тогда пришлось бы много раз вставлять в программу один и тот же код подряд столько раз, сколько нужно выполнить одинаковую последовательность действий.

Универсальным организатором цикла в языке программирования Python (как и во многих других) является инструкция while. Слово "while" с английского языка переводится как "пока" (вроде как "пока действует что-то, делать то-то"). Конструкцию инструкции while на языке Python можно описать следующей схемой:

Примерное описание цикла while

Эта схема приблизительна, т.к. логическое выражение в заголовке цикла while может быть более сложным, а изменяться может переменная (или выражение) b.

Может возникнуть вопрос: "Зачем изменять a или b?". Когда выполнение программного кода доходит до цикла while, выполняется логическое выражение в заголовке и, если было получено True (истина), выполняются вложенные выражения. После поток выполнения программы снова возвращается в заголовок цикла while, и снова проверяется условие. Если условие никогда не будет ложным, то не будет причин остановки цикла и программа «зациклится». Чтобы этого не произошло, необходимо организовать момент выхода из цикла — ложность выражения в заголовке. Так, например, изменяя значение какой-нибудь переменной в теле цикла, можно довести логическое выражение до ложности.

Блок-схема цикла 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 (для следующего витка цикла), а также увеличивается значение счетчика.

Практическая работа

  1. Создайте скрипт на языке программирования Python, выводящий ряд чисел Фибоначчи (см. пример выше). Запустите его на выполнение. Затем измените код так, чтобы выводился ряд чисел Фибоначчи, начиная с пятого члена ряда и заканчивая двадцатым.
  2. Напишите цикл, выводящий ряд четных чисел от 0 до 20. Затем, каждое третье число в ряде от -1 до -21.
  3. Самостоятельно придумайте скрипт на языке программирования Python, в котором бы использовался цикл while.