while¶
Цикл while - це ще один різновид циклу в Python.
У циклі while, як і в if, треба писати умову. Якщо умова є істинною, виконуються дії всередині блоку while. Але, на відміну від if, після виконання коду в блоці, while повертається на початок циклу.
Під час використання циклів while слід звертати увагу на те, чи буде досягнуто такий стан, за якого умова циклу буде хибною.
Розглянемо приклад:
Спочатку створюється змінна зі значенням 5.
Потім, у циклі while зазначено умову a > 0. Тобто, поки значення а більше 0, виконуватимуться дії у тілі циклу. У цьому випадку буде відображено значення змінної a.
Крім того, в тілі циклу при кожному проходженні значення а стає на одиницю менше.
Note
Запис a -= 1
може бути трохи незвичним. Python дозволяє використовувати цей формат замість a = a – 1
.
Подібним чином можна писати: a += 1
, a *= 2
, a /= 2
.
Оскільки значення а зменшується, цикл не буде нескінченним, і в якийсь момент
вираз a > 0
стане хибним.
Наступний приклад базується на прикладі про пароль з розділу про конструкцію if. У тому прикладі доводилося повторно запускати скрипт, якщо пароль не відповідав вимогам.
За допомогою циклу while можна зробити так, що скрипт сам запитуватиме пароль наново, якщо він не відповідає вимогам.
username = input("Введіть ім'я користувача: ")
password = input("Введіть пароль: ")
password_correct = False
while not password_correct:
if len(password) < 8:
print("Пароль надто короткий\n")
password = input("Введіть пароль ще раз: ")
elif username in password:
print("Пароль містить ім'я користувача\n")
password = input("Введіть пароль ще раз: ")
else:
print(f"Пароль для користувача {username} встановлено")
password_correct = True
Цикл while повертає скрипт знову на початок перевірок, дозволяє знову набрати пароль, але при цьому не вимагає перезапуску самого скрипта.
Тепер скрипт відпрацьовує так: