что это такое, как работает, примеры
Цикл while в Python
В прошлой статье мы изучали цикл for – он
используется в тех случаях, когда заранее известно количество итераций,
совершаемых в цикле. Число исполнений цикла for определяется функцией range()
или размером коллекции. Если диапазон значений не
известен заранее, необходимо использовать другой цикл – while: он выполняется, пока не наступит
определенное событие (или не выполнится необходимое условие). По этой причине
цикл while называют условным. Вот пример простейшего цикла while – он выполняется, пока пользователь
не введет 0
:
n = int(input()) while n != 0: print(n + 5) n = int(input())
Цикл while также часто называют бесконечным, поскольку он может выполняться до тех пор, пока пользователь не остановит его нажатием определенной клавиши.
n = int(input())
в теле цикла, while будет
бесконечно выводить одно и то же значение, пока пользователь не остановит выполнение программы нажатием Ctrl + C.Управление бесконечным циклом while в Питоне
Самый простой способ управления бесконечным циклом –
использование оператора break
.
В приведенном ниже коде список lst
генерируется случайным образом, и до начала цикла его длина
неизвестна. Однако выполнение цикла можно оставить, как только список опустеет
в результате многократного выполнения операции pop()
:
import random lst = [i for i in range(random.randint(5, 500))] while True: if not lst: break print(lst. pop())
Если выполнение цикла не остановить сразу же, как только список опустеет, появится ошибка:
IndexError: pop from empty list
Оператор break
также помогает сократить количество итераций и прекратить выполнение программы, как только нужное решение найдено. Например, таким образом можно найти наименьший делитель числа n, отличный от 1:
n = int(input()) i = 2 while True: if n % i == 0: break i += 1 print(i)
Помимо break
,
управлять бесконечным циклом можно с помощью флагов (сигнальных меток). В
приведенном ниже примере программа бесконечно запрашивает у пользователя ввод
любого слова, пока пользователь не введет exit
. Это событие меняет статус цикла на
, и работа программы завершается:
text = 'Введите любое слово: ' text += '\nИли введите exit для выхода: ' active = True while active: message = input(text) if message == 'exit': active = False else: print(message)
Пропуск итераций в цикле while
Оператор continue
можно использовать для пропуска операций, если элементы не соответствуют заданным критериям. Этот код работает, пока не будет сформирован список из 5
элементов – при этом в список не включаются числа в диапазоне между 90 и 120, а
также число 50:
sp = [] while len(sp) < 5: num = int(input()) if num == 50 or 90 <= num <= 120: continue sp.append(num) print(sp)
Если пользователь введет набор цифр 45 50 121 119
95 105 3 4 7
, в список будут добавлены только числа, соответствующие
критериям:
[45, 121, 3, 4, 7]
Особенности цикла while
1. В цикле while можно использовать опциональный параметр else
. В этом примере процедура pop()
выполняется, пока
список не опустеет, после чего выводится сообщение Список пуст
:
import random lst = [i for i in range(random.randint(5, 500))] while len(lst) > 1: print(lst.pop()) else: print('Список пуст')
2. В цикле while можно использовать любое количество условий и условных
операторов and
, or,
иnot
:
n = int(input()) while True: if n == 0: break elif n > 50 or n <= -50: break elif n % 2 == 0: break print(n / 5) n = int(input())
3. Цикл while может быть вложенным. Этот код выводит простые числа из диапазона от 2 до 100:
i = 2 while(i < 100): j = 2 while j <= i / j: if not i % j: break j = j + 1 if j > i / j: print(f'{i} - простое число') i = i + 1
4. В качестве вложенных циклов while могут включать в себя циклы for. Этот код, к примеру, будет бесконечно печатать цифры в диапазоне от 0 до 5:
while True: for i in range(5): print(i)
5. Любой цикл for
можно заменить циклом while, но обратное возможно только в том случае, когда количество итераций можно определить до начала цикла. К примеру, эти циклы while и for равнозначны – оба печатают цифры от 0 до 9:i = 0 while i < 10: print(i) i += 1 for i in range(10): print(i)
А этот цикл while заменить циклом for невозможно – программа будет бесконечно
возводить в квадрат все введенные пользователем числа, пока не получит 0
:
n = int(input()) while True: if n == 0: break print(n ** 2) n = int(input())
Практика
Задание 1
Напишите программу, которая принимает на вход целые числа и вычисляет их сумму, пока пользователь не введет 0.
Пример ввода:
4 5 6 0
15
Решение:
summa = 0 while True: n = int(input()) summa += n if n == 0: break print(summa)
Задание 2
Напишите программу, которая получает от пользователя число n > 100, и вычисляет (без использования методов строк) произведение цифр, из которых n состоит.
Пример ввода:
335
Вывод:
45
Решение:
n = int(input()) prod = 1 while n: prod *= n % 10 n //= 10 print(prod)
Задание 3
Напишите программу, которая получает на вход два числа a и b, и находит наименьшее число c, которое без остатка делится на a и b.Пример ввода:
7 12
Вывод:
84
Решение:
a, b = int(input()), int(input()) c = a while c % b: c += a print(c)
Задание 4
Напишите программу, которая составляет строку из полученных от пользователя слов, пока длина строки не достигнет 50 символов. Слова, начинающиеся с гласных, в строку не включаются.
Пример ввода:
о бойся Бармаглота сын он так свиреп и дик а в глуще рымит
Вывод:
бойся Бармаглота сын так свиреп дик в глуще рымит
Решение:
st = '' while len(st) < 50: word = input() if word[0] in 'аиеёоуыэюя': continue st += ' ' + word print(st)
Задание 5
Напишите программу для конвертации числа из десятичного системы
в двоичную без использования функции bin()
.
Пример ввода:
25
Вывод:
11001
Решение:
n = int(input()) result = '' while n > 0: result = str(n % 2) + result n = n // 2 print(result)
Задание 6
Напишите программу, которая получает на вход число и без использования строковых методов переставляет цифры в обратном порядке.
Пример ввода:
176435
Вывод:
534671
Решение:
n = int(input()) rev = 0 while n!= 0: r = n % 10 rev = rev * 10 + r n = n // 10 print(rev)
Задание 7
Напишите программу для вычисления факториала числа n без использования функции math.factorial()
.
Пример ввода:
7
5040
Решение:
n = int(input()) fact = 1 while n > 1: fact *= n n -= 1 print(fact)
Задание 8
Напишите программу, которая получает от пользователя число n и определяет, является ли оно простым, или у него есть делители, кроме 1 и самого себя.
Пример ввода:
60
Вывод:
60 делится на 2 60 делится на 3 60 делится на 4 60 делится на 5 60 делится на 6 60 делится на 10 60 делится на 12 60 делится на 15 60 делится на 20 60 делится на 30 Таким образом, 60 не является простым числом
Решение:
n = int(input()) flag = False i = 2 while i < n: if n % i ==0: flag = True print(f'{n} делится на {i}') i += 1 if flag: print(f'Таким образом, {n} не является простым числом') else: print(f'{n} - простое число')
Задание 9
Напишите программу, использующую вложенный цикл while для вывода треугольника
размером n x n х n, состоящего из символов*
.
Пример ввода:
6
Вывод:
* ** *** **** ***** ******
Решение:
n = int(input()) i, j = 0, 0 while i < n: while j <= i: print('*', end='') j += 1 j = 0 i += 1 print('')
Задание 10
Напишите программу для запоминания английских названий месяцев:
1. Русские названия месяцев выводятся в случайном порядке с
помощью метода random.shuffle()
.
2. Пользователь получает три попытки для написания правильного названия на английском.
3. После трех неверных попыток программа переходит к другому слову.
Пример ввода:
Месяц март по-английски называется: march Месяц январь по-английски называется: January Месяц август по-английски называется: august Месяц май по-английски называется: may Месяц апрель по-английски называется: aprile Неверно! Осталось попыток: 2 Месяц апрель по-английски называется: aprill Неверно! Осталось попыток: 1 Месяц апрель по-английски называется: appril Неверно! Осталось попыток: 0 Попытки исчерпаны! Месяц июль по-английски называется: july Месяц сентябрь по-английски называется: september Месяц июнь по-английски называется: june Месяц октябрь по-английски называется: october Месяц ноябрь по-английски называется: november Месяц декабрь по-английски называется: december Месяц февраль по-английски называется: february
Вывод:
Конец игры Количество правильных ответов: 11 Число ошибок: 3
Решение:
import random correct, wrong, attempts = 0, 0, 3 months = {'январь': 'January', 'февраль': 'February', 'март': 'March', 'апрель': 'April', 'май': 'May', 'июнь': 'June', 'июль': 'July', 'август': 'August', 'сентябрь': 'September', 'октябрь': 'October', 'ноябрь': 'November', 'декабрь': 'December'} rand_keys = list(months. keys()) random.shuffle(rand_keys) for key in rand_keys: counter = 0 while counter < attempts: spelling = input(f'Месяц {key} по-английски называется: ') if spelling.title() == months[key]: correct += 1 break else: counter += 1 wrong += 1 print(f'Неверно! Осталось попыток: {attempts - counter}') else: print(f'Попытки исчерпаны!') print('Конец игры') print(f'Количество правильных ответов: {correct}') print(f'Число ошибок: {wrong}')
Подведем итоги
Цикл while используют в случаях, когда число итераций невозможно оценить заранее. Во всех остальных случаях лучше применять цикл for. Чтобы цикл while случайно не превратился в бесконечный, стоит продумать все события и условия, которые должны приводить к своевременному прерыванию программы.
В следующей статье приступим к изучению функций.
***
Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
Цикл while | Основы Python
Для перемещения по курсу нужно зарегистрироваться
1. Введение ↳ теория
2. Hello, World! ↳ теория / тесты / упражнение
3. Инструкции ↳ теория / тесты / упражнение
4. Арифметические операции ↳ теория / тесты / упражнение
5. Ошибки оформления — синтаксис и линтер ↳ теория / тесты / упражнение
6. Строки ↳ теория / тесты / упражнение
7. Переменные ↳ теория / тесты / упражнение
8. Выражения в определениях ↳ теория / тесты / упражнение
9. Именование ↳ теория / тесты / упражнение
10. Интерполяция ↳ теория / тесты / упражнение
11. Извлечение символов из строки ↳ теория / тесты / упражнение
12. Срезы строк ↳ теория / тесты / упражнение
13. Типы данных ↳ теория / тесты / упражнение
14. Неизменяемость и примитивные типы ↳ теория / тесты / упражнение
15. Функции и их вызов ↳ теория / тесты / упражнение
16. Сигнатура функции ↳ теория / тесты / упражнение
17. Вызов функции — выражение ↳ теория / тесты / упражнение
18. Детерминированность ↳ теория / тесты / упражнение
19. Стандартная библиотека ↳ теория / тесты / упражнение
20. Свойства и методы ↳ теория / тесты / упражнение
21. Цепочка методов ↳ теория / тесты / упражнение
22. Определение функций ↳ теория / тесты / упражнение
23. Возврат значений ↳ теория / тесты / упражнение
24. Параметры функций ↳ теория / тесты / упражнение
25. Необязательные параметры функций ↳ теория / тесты / упражнение
26. Именованные аргументы ↳ теория / тесты / упражнение
27. Окружение ↳ теория / тесты / упражнение
28. Логика ↳ теория / тесты / упражнение
29. Логические операторы ↳ теория / тесты / упражнение
30. Результат логических операций ↳ теория / тесты / упражнение
31. Условные конструкции ↳ теория / тесты / упражнение
32. Оператор Match ↳ теория / тесты / упражнение
33. Цикл while ↳ теория / тесты / упражнение
34. Агрегация данных ↳ теория / тесты / упражнение
35. Обход строк ↳ теория / тесты / упражнение
36. Условия внутри тела цикла ↳ теория / тесты / упражнение
37. Цикл for ↳ теория / тесты / упражнение
38. Отладка ↳ теория / тесты / упражнение
39. Модули ↳ теория / тесты / упражнение
40. Модули поглубже ↳ теория / тесты / упражнение
41. Пакеты ↳ теория / тесты / упражнение
42. Модуль random ↳ теория / тесты / упражнение
43. Кортежи ↳ теория / тесты / упражнение
44. История развития языка Python ↳ теория / тесты
Испытания
1. Фибоначчи
2. Сумма двоичных чисел
3. Физзбазз
4. Классификация отрезков
5. Вращение троек
6. Разница углов
7. Степени тройки
8. Фасад
9. Счастливый билет
10. Идеальные числа
11. Инвертированный регистр
12. Счастливые числа
13. Шифрование
Порой обучение продвигается с трудом. Сложная теория, непонятные задания… Хочется бросить. Не сдавайтесь, все сложности можно преодолеть. Рассказываем, как
Не понятна формулировка, нашли опечатку?
Выделите текст, нажмите ctrl + enter и опишите проблему, затем отправьте нам. В течение нескольких дней мы улучшим формулировку или исправим опечатку
Что-то не получается в уроке?
Загляните в раздел «Обсуждение»:
- Изучите вопросы, которые задавали по уроку другие студенты — возможно, ответ на ваш уже есть
- Если вопросы остались, задайте свой. Расскажите, что непонятно или сложно, дайте ссылку на ваше решение. Обратите внимание — команда поддержки не отвечает на вопросы по коду, но поможет разобраться с заданием или выводом тестов
- Мы отвечаем на сообщения в течение 2-3 дней. К «Обсуждениям» могут подключаться и другие студенты. Возможно, получится решить вопрос быстрее!
Подробнее о том, как задавать вопросы по уроку
While Loop в Python — Python While Loop
Операторы потока управления: Python While LoopКак обсуждалось в предыдущем модуле, мы знаем, что Python, как и другие популярных языка программирования , состоит из некоторых операторов потока управления. Одним из операторов потока управления, который мы уже изучили в предыдущем модуле, является оператор Python if else . Еще одним оператором потока управления являются циклы. Циклы используются, когда мы хотим повторить блок кода несколько раз. В этом модуле мы узнаем о цикле while в Python.
Ниже приведен список всех тем, которые мы рассмотрим в этом модуле.
- Что такое цикл while в Python?
- Бесконечный цикл while в Python
- Цикл Do While в Python
- Хотя верно в Python
- Еще с циклом While в Python
- Прерывания цикла в Python
- Программа числового шаблона на Python с использованием цикла While
- Факториальная программа на Python с использованием цикла While
Итак, без дальнейших проволочек, приступим.
Что такое цикл while в Python?Операторы цикла While в Python используются для повторного выполнения определенного оператора до тех пор, пока условие, указанное в операторе цикла while, остается истинным. Циклы while позволяют программе перебирать блок кода.
Синтаксис цикла While в Python:
while test_expression: тело цикла while
Следующая блок-схема объясняет работу цикла while в Python.
Сначала программа оценивает условие цикла while. Если это правда, то программа входит в цикл и выполняет тело цикла while. Он продолжает выполнять тело цикла while, пока условие истинно. Когда оно ложно, программа выходит из цикла и перестает повторять тело цикла while.
Давайте посмотрим на следующий пример, чтобы лучше понять его.
а = 1 пока (а<10): print(" цикл введен", a, "times") а = а+1 print("Здесь цикл заканчивается") Выход: петля введена 1 раз петля введена 2 раза петля введена 3 раза петля введена 4 раза петля введена 5 раз петля введена 6 раз петля введена 7 раз петля введена 8 раз введена петля 9раз Цикл заканчивается здесь
Заинтересованы в изучении Python? Запишитесь на наш курс Python в Лондоне прямо сейчас!
Карьерный переход
Бесконечный цикл while в PythonБесконечный цикл while относится к циклу while, в котором условие while никогда не становится ложным. Когда условие никогда не становится ложным, программа входит в цикл и продолжает повторять один и тот же блок кода снова и снова, и цикл никогда не заканчивается.
В следующем примере показан бесконечный цикл:
a = 1 в то время как а == 1: b = ввод («как тебя зовут?») print("Привет", b, ", Добро пожаловать в Intellipaat!")
Если мы запустим приведенный выше блок кода, он выполнит бесконечный цикл, который снова и снова будет запрашивать наши имена. Цикл не прервется, пока мы не нажмем «Ctrl+C».
Вывод:
как тебя зовут? Аканкша Рана #пользовательский ввод Привет, Аканкша Рана, добро пожаловать в Intellipaat! как тебя зовут? Амрит #пользовательский ввод Привет Амрит, Добро пожаловать в Intellipaat! как тебя зовут? Шубхам #пользовательский ввод Привет Шубхам, Добро пожаловать в Intellipaat! как тебя зовут? Traceback (последний последний вызов): #Остановка цикла нажатием CTRL+C Файл «», строка 2, в КлавиатураПрерываниеЦикл Do-While в Python
В Python нет цикла do-while. Но мы можем создать программу для реализации do-while. Он используется для проверки условий после выполнения оператора. Это похоже на цикл while, но он выполняется хотя бы один раз.
я = 1 пока верно: печать (я) я = я + 1 если (я > 5): перерыв Результат будет 1 2 3 4 5
Теперь взгляните на наши Обучение Python для повышения вашей карьеры до новых высот. Кроме того, ознакомьтесь с нашими бесплатными вопросами для интервью по Python .
Хотя true в PythonСуществует концепция объявления условия истинным без оценки какого-либо выражения. Это делается для того, чтобы указать, что цикл должен выполняться до тех пор, пока он не прервется. Затем мы записываем операторы break внутри блока кода.
Параметр while true в python реализовать просто. Вместо объявления любых Переменная Python , применяя условия, а затем увеличивая их, напишите true внутри условных скобок.
еженедельная зарплата = 0 день недели = 1 week = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"] пока (правда): если(неделя[деньнедели] == "воскресенье"): печать("Праздник!!") перерыв недельная зарплата += 2000 день недели += 1 печать (ул (еженедельная зарплата)) Результат будет Праздничный день!! 10000Else с циклом While в Python
В Python мы также можем использовать оператор else с циклами. Когда оператор else используется с циклом while, он выполняется только в том случае, если условие становится ложным.
а = 1 в то время как <5: напечатать("условие истинно") а=а+1 еще: print("условие теперь ложно")
В этом примере показано, как оператор else работает с циклом while.
Выход:
условие верно условие верно условие верно условие верно условие теперь ложно
В приведенном выше примере программа продолжает выполнять тело цикла while до тех пор, пока условие не станет истинным, что означает, что значение и меньше 5. Поскольку начальное значение и равно 1 и каждый раз, когда программа входит в цикл, значение a увеличивается на 1, условие становится ложным после того, как программа входит в цикл в четвертый раз, когда значение a увеличивается с 4 до 5. Когда программа проверяет условие в пятый раз, она выполняет его как ложное, переходит к блоку else и выполняет тело else, отображая «условие теперь ложно».
Посмотрите это видео в разделе «Учебное пособие по Python»:Начните свою карьеру в Python с идеального курса Python в Нью-Йорке прямо сейчас!
Прерывания цикла в PythonPython предлагает следующие два ключевых слова, которые мы можем использовать для преждевременного завершения итерации цикла.
Операторы Break в цикле While
- Break: Ключевое слово break прерывает цикл и передает управление в конец цикла.
Пример: а = 1 в то время как <5: а += 1 если а == 3: перерыв печать (а) Выход: 2
Операторы Continue в цикле While
- Continue: Ключевое слово continue завершает текущую итерацию и передает управление в начало цикла, а условие цикла оценивается снова. Если условие истинно, то происходит следующая итерация.
Пример:
а = 1 в то время как <5: а += 1 если а == 3: продолжать печать (а) Выход: 2 4 5
Отправляйтесь на самый профессиональный онлайн-курс Python в Торонто и сделайте блестящую карьеру прямо сейчас!
Программа числового шаблона на Python с использованием цикла Whilen = int(input("Введите количество строк:")) я = 1 пока я <= п: дж = 1 в то время как j <= я: напечатать("*", конец = "") j += 1 Распечатать() я += 1 Результат будет Введите количество строк: 4 * ** *** ****Факториальная программа на Python с использованием цикла While
num = int(input("Введите число: ")) факт = 1 я = 1 пока я <= число: факт = факт * я я = я + 1 print("Факториал ", num," is ", fac) Результат будет Введите число: 4 Факториал 4 равен 24
На этом мы подошли к концу этого модуля в учебнике по Python. Вы также можете просмотреть этот учебник Python Data Science, чтобы узнать, почему Python является наиболее предпочтительным языком для Data Science. Кроме того, ознакомьтесь с нашими бесплатными вопросами для интервью по Python.
Получите 100% повышение!
Осваивайте самые востребованные навыки прямо сейчас!
Расписание курса
Как писать и использовать циклы While на Python
Требуемые материалы: Последняя версия Python (Python 3), интегрированная среда разработки (IDE) по вашему выбору (или терминал), стабильное подключение к Интернету
Предварительные условия/полезный опыт: Базовые знания Python и концепций программирования
Циклы While являются инструментами управления потоком. Как и циклы for, они используются для перебора блока кода. В отличие от циклов for, они будут повторять этот блок кода неизвестное количество раз, пока не будет выполнено определенное условие. Вы будете использовать циклы while, когда не уверены, сколько раз вам нужно повторить код. Вы будете использовать циклы do while, когда вам нужно повторить хотя бы один раз.
Термин | Определение |
---|---|
Цикл while | Используется для перебора кода, когда условие истинно. Этот тип цикла обычно используется, когда неизвестно, сколько раз вам нужно повторить. |
Цикл For | Итерирующая функция, используемая для многократного выполнения инструкций. |
Поток управления | Поток управления или поток программы — это порядок выполнения в коде программы. |
Управляющие операторы | В Python операторы continue, break и pass — это операторы управления, которые изменяют порядок выполнения программы. |
Операторы цикла | Операторы цикла многократно выполняют код, указанный пользователем. |
Итерация | В программировании итерация — это многократное повторение кода или процесса до тех пор, пока не будет выполнено определенное условие. |
Углубление | Отступ — это пробел в начале каждой строки кода. В Python отступ указывает на новую строку кода. В других языках программирования он используется только для удобства чтения. |
Логическое выражение | Логическое выражение — это логический оператор. Это либо True , либо False . |
if | if является обычным условным оператором. Он определяет, должен ли оператор выполняться или нет, путем проверки заданного условия. Если условие верно, то , если будет выполнен блок кода . |
else | Оператор else содержит блок кода, который будет выполняться, если условие из оператора if ложно или разрешается в ноль. |
break | Команда break завершает содержащий ее цикл и перенаправляет поток программы на следующий оператор. |
Циклы While непрерывно выполняют код до тех пор, пока заданное условие или логическое выражение истинно. Они наиболее полезны, когда вы не знаете, сколько раз вам понадобится код для выполнения. Например, вы можете захотеть запустить фрагмент кода, пока заданное число находится в диапазоне от 1 до 5. В этом случае цикл будет выполняться , в то время как число остается между 1 и 5. Когда пользователь выбирает 6 или любое другое число, отличное от 1-5, поток управления выходит из тела цикла while.
Как работает цикл while в Python
Сначала интерпретатор Python проверяет тестовое выражение или условие while. Если тестовое выражение оценивается как true
, будет введено тело цикла while. Этот процесс повторяется до тех пор, пока тестовое выражение не станет равным false
.
Попробуйте сами
PYTHON
числа = [2, 4, 6, 8, 10] всего = 0 для числа в цифрах: всего += число print("Итого:", всего)
1
2
3
4
5
число = [2, 4, 6, 8, 10]
всего = 0
для числа в цифрах:
всего += число
print("Итого равно:", total)
Что интерпретатор отобразит в конце четвертого цикла?
После четвертого цикла интерпретатор напечатает Итого: 8
.
Помните, что отступы имеют решающее значение в Python. Отступ сообщает Python, где начинается и заканчивается тело цикла. Цикл while начинается с отступа и заканчивается на первой строке без отступа. Во-первых, давайте рассмотрим синтаксис и структуру цикла while в Python:
PYTHON
while count < 5: # условие для проверки продолжения цикла print(count) # тело цикла, будет выполняться, пока условие истинно
1
2
while count < 5: # условие для проверки продолжения цикла
print(count) # тело цикла будет выполняться, пока условие истинно
Примечание о ненулевых значениях
Python будет интерпретировать все ненулевые значения как true
while нет
и 0
являются ложными
.
Теперь давайте рассмотрим пример:
В этом примере цикл выводит четные числа от 0 до 8, потому что мы начинаем с 0 и добавляем 2 к числу для каждой итерации. Как только число
достигает 10, условие число < 10
перестает быть истинным, и цикл завершается.
Совет
Будьте осторожны, чтобы не создать бесконечный цикл. Если условие никогда не разрешается до false Значение
, происходит бесконечная итерация.
Как упоминалось выше, первая строка кода без отступа отмечает конец цикла while. Однако может потребоваться досрочное завершение цикла или завершение текущей итерации цикла. В этом случае вы можете использовать один из трех операторов управления циклом:
1. Break
Ключевое слово break
используется для досрочного выхода из цикла. Он завершает содержащий его цикл и перенаправляет поток программы на следующий оператор.
Пример:
В этом примере мы используем цикл while
для вывода чисел от 1 до 10. Однако мы также используем оператор if
, чтобы проверить, достиг ли цикл половины пути, т. е. i
равно 5
. Если мы достигли середины пути, мы выводим на консоль сообщение: «Мы достигли половины пути, цикл останавливается». а затем немедленно выйти из цикла, используя оператор break
.
Подробнее: Как использовать Python Break: циклы In For, циклы While и операторы If
2. Продолжить
продолжить
— это ключевое слово Python, которое можно использовать для завершения текущей итерации цикла for. Поток управления продолжится до следующей итерации. Оператор continue
полезен, когда вы хотите пропустить определенные итерации цикла на основе некоторого условия, не выходя из цикла полностью.
Пример:
В этом примере цикл while
перебирает числа от 1 до 10. Оператор if
проверяет, является ли текущее значение i
четным. Если это так, выполняется оператор continue
, в результате чего цикл пропускает текущую итерацию и переходит к следующей без выполнения остальной части тела цикла. Если i
нечетно, выполняется оператор print
, выводящий значение i
.
3. Проход
Оператор pass
в Python намеренно ничего не делает. Его можно использовать в качестве заполнителя для будущего кода или когда оператор требуется по синтаксису, но вы не хотите, чтобы что-то произошло. В цикле while
вы можете использовать его, чтобы игнорировать определенное условие во время итерации.
Пример:
В этом примере цикл while
перебирает числа от 1 до 5. Оператор if
проверяет, соответствует ли текущее значение i
равно 3
. Оператор pass
указывает, что не нужно предпринимать никаких конкретных действий, когда i
равно 3
, но программа должна продолжать выполнение оставшейся части тела цикла.
Попробуйте сами
Напишите программу, которая постоянно предлагает пользователю ввести число от 1 до 10, пока пользователь не введет правильное число. Для каждого неверного ввода программа должна вывести сообщение об ошибке и предложить пользователю повторить попытку. Если пользователь вводит допустимое число, программа должна напечатать сообщение о том, что число допустимо, и выйти из цикла.
Используйте оператор continue
, чтобы пропустить любой ввод, который не является допустимым числом от 1 до 10.
Вот одно из возможных решений упражнения:
PYTHON
while True: num_str = input("Введите число от 1 до 10:") если не num_str.isdigit(): print("Ошибка: ввод должен быть числом.") продолжать число = целое (число_стр) если число < 1 или число > 10: print("Ошибка: число должно быть от 1 до 10.") продолжать print("Вы ввели правильное число:", число) перерыв
1
2
3
4
5
6
7
8
9
10
11
, пока верно:
num_str = input("Введите число от 1 до 10:")
если не num_str. isdigit():
print("Ошибка: ввод должен быть числом.")
продолжать
число = целое (число_стр)
если число < 1 или число > 10:
print("Ошибка: число должно быть от 1 до 10.")
продолжать
print("Вы ввели правильное число:", число)
break
В этом примере цикл for перебирает каждый символ в строке string от начала до конца. Для каждого символа он объединяет этот символ с началом переменной reversed_string. К концу цикла reversed_string будет содержать исходную строку в обратном порядке.
Нужна помощь?
Как завершить вложенный цикл while
? Если цикл while
является вложенным, обязательно поместите оператор break
во внешний цикл. В противном случае происходит выход только из внутреннего цикла.
Цикл do while
является вариантом цикла while
, который проверяет условие в конце цикла, а не в его начале. Даже если условие никогда не будет истинным, операторы внутри тела цикла будут выполняться минимум один раз. Циклы do while
полезны, когда вам нужно, чтобы ваш код запускался хотя бы один раз. В Python нет встроенного цикла do while
, как в других языках программирования. Однако вы можете изменить обычный цикл Python while
, чтобы реализовать ту же функциональность.
Как эмулировать цикл do while в Python
Цикл Python while
запускается только при выполнении условия. Поскольку он проверяет это условие в начале, он может вообще никогда не запуститься. Чтобы изменить while
в цикл do while
, добавьте true
после ключевого слова while
, чтобы условие всегда было истинным с самого начала. Затем вы можете добавить операторы if
для проверки внутреннего условия и операторы break для управления потоком цикла на основе ваших условий.
Вот пример:
Этот цикл напечатает числа от 1 до 5, что эквивалентно поведению цикла do while
, который повторяется от 1 до 5. Мы используем break
оператор для выхода из цикла после того, как мы напечатали все числа, так как условие while
всегда равно True
и в противном случае привело бы к бесконечному циклу.
-
в то время как
циклы непрерывно выполняют код до тех пор, пока данное условие истинно. - В Python нет цикла
do while
, но вы можете изменить циклwhile
для достижения той же функциональности. - Есть три управляющих оператора, которые можно использовать для выхода из цикла while в Python:
сломать
,продолжить
ипередать
. - Отступ сообщает Python, какие операторы находятся внутри или вне цикла.
- Быть разработчиком Python: что они могут делать, зарабатывать и многое другое
- Документация по инструментам управления потоком Python
- Памятка по циклам Python
- Как использовать Python Break
Управляемый проект, такой как концепции в Python: циклы, функции и возвраты.