Python: Урок 7. Цикл while

Цикли — це інструкції, що виконують одну і ту ж саму послідовність дій, поки діє задана умова.

У реальному житті ми досить часто стикаємося з циклами. Наприклад, ходьба людини - цілком циклічне явище: крок лівою, крок правою, знову лівою-правою і т.д., поки не буде досягнута певна мета (наприклад, школа чи магазин). У комп'ютерних програмах поряд з інструкціями розгалуження (тобто вибором шляху дії) також існують інструкції циклів (повторення дії). Якби інструкцій циклу не існувало, довелося б багато разів вставляти в програму один і той же код підряд стільки разів, скільки потрібно виконати однакову послідовність дій.

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

Ця схема приблизна, тому що логічний вираз в заголовку циклу while може бути більш складним, а змінюватися може змінна (або вираз) b.

Може виникнути питання: "Навіщо змінювати a або b?". Коли виконання програмного коду доходить до циклу while, виконується логічний вираз в заголовку, і, якщо було отримано True, виконуються вкладені вирази. Після потік виконання програми знову повертається в заголовок циклу while, і знову перевіряється умова. Якщо умова ніколи не буде змінюватись, то не буде причин зупинки циклу і програма зациклиться. Щоб цього не сталося, необхідно передбачити можливість виходу з циклу. Таким чином, змінюючи значення змінної в тілі циклу, можна довести логічний вираз до False і цикл завершиться.


Цю змінювану змінну, яка використовується в заголовку циклу while, зазвичай називають лічильником. Як і всякій змінній їй можна давати довільні імена, однак дуже часто використовують букви i та j. Найпростіший цикл на мові програмування Python може виглядати так:
str1 = "+"
i = 0
while i < 10:
    print(str1)
    i = i + 1
В останньому рядку коду відбувається збільшення значення змінної i на одиницю, тому з кожним колом циклу її значення збільшується. Коли буде досягнуте число 10, логічний вираз i < 10 дасть False, виконання тіла циклу буде припинено, а потік виконання програми перейде на наступні команди, що слідують після циклу. Результатом виконання вищевказаного скрипту є виведення на екран десяти знаків “+” в стовпчик. Якщо збільшувати лічильник в тілі циклу не на одиницю, а на 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.

Зміст курсу

Вступ
Урок 1. Історія мов програмування. Компіляція та інтерпретація
Урок 2. Знайомство з Python і середовищами програмування
Урок 3. Типи даних в програмуванні. Визначення змінної
Урок 4. Логічні вирази
Урок 5. Умовний оператор. Інструкція if
Урок 6. Множинне розгалуження
Урок 7. Цикл while
Урок 8. Введення даних з клавіатури
Урок 9. Рядки як послідовності символів
Урок 10. Списки - змінювані послідовності
Урок 11. Cловники
Урок 12. Цикл for
Урок 13. Функції
Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні
Урок 15. Перевірочна робота з основ програмування на Python

Коментарі

Популярні дописи з цього блогу

Азбука Морзе Українською

Python: Урок 3. Типи даних в програмуванні. Визначення змінної

Python: Урок 4. Логічні вирази