Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

10.2. Цикл while в Python

Ранее вы познакомились с циклом for, так же вы уже знаете основные структуры данных в Python. Познакомимся со вторым циклом – while.

Цикл while предназначен для выполнения блока кода до тех пор, пока какое-то условие истинно. Синтаксис цикла while в Python представлен ниже:

Пример
while условие:
    инструкция 1
    инструкция 2
    ...

Чаще всего цикл while используется, когда неизвестно точное количество итераций цикла (итерация – это один шаг цикла, т.е. одно выполнение всего блока кода этого цикла). Это основное отличие цикла while от for.

После того, как условие в цикле while становится ложным, работа цикла прекращается и управление передается следующей инструкции (в примере, инструкции 3):

Пример
while условие:
    инструкция 1
    инструкция 2
инструкция 3       

Рассмотрим пример:

Пример
i = 1
while i <= 10:
    print(i)
    i += 1       

В этом примере мы выводим в консоль цифры от 1 до 10 при помощи цикла while. Сначала нам необходимо инициализировать переменную i, чтобы с каждой итерацией цикла мы могли увеличивать ее на единицу. Согласен, это пример не показывает различие цикла while и for.

Обратите внимание, в Python нет операторов ++ и --, которые имеются во многих языках программирования. Поэтому мы используем эквивалентную запись i += 1.

Рассмотрим следующий:

Пример
count = 1
i = int(input())

while (i != 10):
    i = int(input())
    count += 1
print(count)       

Получилась небольшая игра, где пользователь вводит число до тех пор, пока не угадает. Если вспомним урок про генерацию случайных чисел, то можно улучшить нашу игру.

Пример
import random
count = 1
rand_number = random.randint(1, 10)
i = int(input())

while (i != rand_number):
    i = int(input())
    count += 1
print(count)       

Здесь мы подключаем библиотеку random, после чего инициализируем переменную count для подсчета попыток угадать число. Генерируем случайное число при помощи метода randint() и сохраняем в переменной rand_number. Далее предлагаем пользователю ввести число. После это число сравнивается с условием в цикле while и, в зависимости от результата, выполняются инструкции в цикле while n-ое количество раз, пока условие не будет ложным.

Инструкция while/else

После цикла while можно указать ключевое слово else:

Пример
while условие:
    инструкция
else:
    инструкция 

Блок else будет выполнен один раз после завершения цикла. Казалось бы, зачем это нужно, если инструкции и так будут выполняться после завершения цикла. Смысл появится, когда мы познакомимся с инструкцией break в следующем уроке. Мы еще вернемся к инструкции while/else.

В этом уроке мы познакомились с циклом while, который позволяет выполнять блок кода до тех пор, пока условие истинно. В следующем уроке разберемся с операторами break, continue и pass в Python.

<
×
>
Раздел «Знакомство с Python»
Урок 1.1. Первое знакомство с Python
Тест 1.2. Небольшой первый тест
Урок 1.3. Переменные и комментарии в Python
Тест 1.4. Тест по основным понятиям и работе с сайтом
Урок 2.1. Погружение в Python
Тест 2.2. Второй вводный тест по Python
Урок 2.3. Типы данных в Python
Урок 2.4. Форматирование строк в Python
Урок 2.5. Условная инструкция if-elif-else в Python
Урок 2.6. Преобразование и проверка типов в Python
Урок 2.7. Вызов методов цепочкой в Python
Урок 3.1. Первое знакомство с циклами в Python
Тест 3.2. Тест по циклам Python
Урок 4.1. Генерируем случайные числа на Python
Тест 4.2. Тест по модулю random Python
Урок 5.1. Структуры данных в Python
Тест 5.2. Тест по структурам Python
Урок 6.1. Списки в Python
Тест 6.2. Тест по спискам Python
Урок 6.3. Изменение списка на месте в Python
Урок 6.4. Дополнительно про списки в Python
Урок 6.5. Конкатенация и сортировка списков в Python
Тест 6.6. Заключительный тест по спискам в Python
Урок 7.1. Словари в Python
Тест 7.2. Тест по словарям Python
Урок 7.3. Словари и списки: еще глубже
Урок 7.4. Перебор элементов словаря в Python
Урок 7.5. Внутреннее устройство и сортировка словаря в Python
Урок 7.6. Методы словарей и функция len() в Python
Тест 7.7. Заключительный тест по словарям
Урок 8.1. Множества в Python
Урок 8.2. Методы и особенности множеств в Python
Урок 8.3. Отношения между множествами и операции над ними
Тест 8.4. Тест по методам множеств в Python
Тест 8.5. Тест по операциям над множествами в Python
Урок 9.1. Кортежи в Python
Урок 9.2. Более подробно о кортежах в Python
Тест 9.3. Тест по кортежам в Python
Урок 10.1. Контроль хода выполнения программы в Python
Урок 10.2. Цикл while в Python
Вы здесь
Урок 10.3. Операторы break, continue и pass в Python
Урок 10.4. Циклы for/else и while/else в Python
Урок 10.5. Обработка исключений (try/except) в Python
Тест 10.6. Тест по циклам и управляющим конструкциям
Тест 10.7. Тест по обработке исключений
Урок 11.1. Работа с файлами в Python
Урок 11.2. Оператор with/as для работы с файлами в Python
Тест 11.3. Тест по работе с файлами в Python
Урок 12.1. Итераторы в Python
Урок 12.2. List/dict/set comprehensions (включения) в Python
Тест 12.3. Тест по включениям в Python
Урок 13.1. Основы функций в Python
Тест 13.2. Тест по основам функций в Python
Урок 13.3. Область видимости в Python
Урок 13.4. Что дальше?
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно