Оригінальна публікація: Python Do While – Loop Example
Цикли є корисною і часто використовуваною функціональністю в усіх сучасних мовах програмування.
Якщо ви хочете автоматизувати конкретне повторюване завдання або запобігти написанню повторюваного коду у своїх програмах, найкраще використати цикл.
Цикл — це набір інструкцій, які повторно виконуються, доки відповідають умові. Дізнаємось детальніше про роботу циклів у Python.
Цикли у Python
У Python вбудовано два типи циклів:
- цикли
for
- цикли
while
Ми зосередимось на тому, як створити цикл while
та як він працює.
Що таке цикл while у Python?
Загальний синтаксис циклу while
у Python виглядає ось так:
while умова:
виконати цей код у тілі циклу
Цикл while запускатиме частину коду, поки умова істинна (true). Він продовжуватиме виконувати потрібні умови, доки умова не перестане бути істинною (true).
Цикл while завжди перевірятиме умову перед запуском коду.
Якщо умова оцінюється як True
, цикл запустить код у тілі циклу.
Наприклад, цей цикл виконується, якщо number
менше за 10
:
number = 0
while number < 10:
print(f"Числом є {number}!")
number = number + 1
Вивід:
Числом є 0!
Числом є 1!
Числом є 2!
Числом є 3!
Числом є 4!
Числом є 5!
Числом є 6!
Числом є 7!
Числом є 8!
Числом є 9!
Спочатку змінна number
встановлена на 0
.
Python перевіряє умову (number < 10
) перед запуском коду. Вона оцінюється як істинна, тому інструкція друку виконується та Числом є 0!
виведено на консолі.
Потім number
збільшено на 1
. Умова знову оцінюється як істинна, і так продовжується, доки number
дорівнює 9
.
Цього разу виведено Числом є 9!
та number
збільшується, але number
дорівнює 10
, тому умова хибна (false) і цикл завершується.
Можливо і таке, що цикл while
ніколи не виконується. Ось приклад:
number = 50
while number < 10 :
print(f"Числом є {number}!")
Оскільки умова завжди хибна (false), код у тілі циклу не виконується.
Не створюйте нескінченні цикли
Як ви побачили у вищеподаному прикладі, зазвичай цикли while
супроводжуються змінною, значення якої змінюється протягом циклу. Саме від неї залежить, коли закінчиться цикл.
Якщо ви не додасте цей рядок, ви створите нескінченний цикл.
number
не буде збільшена та оновлена. Вона завжди матиме значення 0
, і, відповідно, умова number < 10
завжди буде істинною. Це означає, що цикл буде виконуватись вічно.
# не запускайте цей код
number = 0
while number < 10:
print(f"Числом є {number}!")
Вивід:
Числом є 0!
Числом є 0!
Числом є 0!
Числом є 0!
Числом є 0!
Числом є 0!
Числом є 0!
...
Він виконується нескінченно.
Це те саме:
# не запускайте цей код
while True:
print("Я завжди істинна")
Що робити в такій ситуації?
Натисніть Control C
, щоб уникнути та закінчити цикл.
Що таке цикл do while?
Загальний синтаксис циклу do while
в інших мовах програмування виглядає ось так:
do {
інструкція блоку циклу, яка буде виконана;
}
while(умова);
Наприклад, цикл do while у C виглядає ось так:
#include <stdio.h>
int main(void)
{
int i = 10;
do {
printf("значення i: %i\n", i);
i++;
}
while( i < 20 );
}
Унікальним у циклах do while є той факт, що код у блоці циклу буде виконано принаймні один раз.
Код в інструкції виконується один раз, і лише потім перевіряється умова.
Таким чином: спочатку виконується код, а потім перевірка умови.
Якщо умова оцінена як істинна, цикл продовжується.
Бувають випадки, коли код потрібно запустити принаймні один раз. Саме тоді на допомогу приходять цикли do while.
Наприклад, ви пишете програму, яка приймає ввід від користувачів у вигляді додатних чисел. Код запуститься принаймні раз. Якщо користувач введе від’ємне число, цикл продовжиться. Якщо додатне, цикл зупиниться.
Python не має вбудованої функціональності, щоб напряму створити цикл do while
. Однак його можливо створити у Python.
Як створити цикл do while у Python
Щоб створити цикл do while
у Python, вам потрібно трішки змінити цикл while
, аби отримати схожу поведінку до циклів do while
в інших мовах програмування.
Нагадую, що цикл do while
виконується принаймні раз. Якщо відповідає умова, він виконається ще раз.
А ось цикл while
може взагалі не виконатись. Він виконується лише тоді, коли відповідає умова.
Скажімо, ми хочемо, аби рядок коду виконався принаймні раз.
secret_word = "python"
counter = 0
while True:
word = input("Введіть секретне слово: ").lower()
counter = counter + 1
if word == secret_word:
break
if word != secret_word and counter > 7:
break
Код буде виконано принаймні раз, запитуючи ввід користувача.
Він гарантовано виконається принаймні раз із True
. В іншому випадку створиться нескінченний цикл.
Якщо користувач введе правильне секретне слово, цикл завершиться.
Якщо користувач введе неправильне секретне слово більше 7 разів, цикл також завершиться.
Інструкція break
дозволяє контролювати потік циклу while
та уникнути нескінченного циклу.
break
одразу ж припиняє поточний цикл та зупиняє його.
Таким чином ви створюєте схожу дію до циклу do while
у Python.
Цикл завжди виконується принаймні раз. Він продовжуватиметься, якщо не відповідає умова та зупиниться, якщо навпаки.
Висновок
Тепер ви знаєте, як створити цикл do while
у Python.
Якщо ви хочете дізнатись більше про Python, можете переглянути наше відео «12 Python Projects» на ютубі. Ви зможете побудувати 12 проєктів, орієнтованих для початківців.
freeCodeCamp також має безоплатну сертифікацію з Python, яка допоможе вивчити важливі основи мови.
В кінці курсу ви зможете побудувати п’ять проєктів, щоб попрактикувати вивчене.
Дякую, що прочитали та щасливого навчання!