Чем отличается цикл for от while python
Перейти к содержимому

Чем отличается цикл for от while python

  • автор:

Циклы в Python: как работать с while и for

При написании программ часто возникают ситуации, когда нужно снова и снова использовать определенный фрагмент кода. Циклы в Python упрощают работу программиста: они помогают многократно выполнять блок кода.

Ефективний курс від laba: Фінансовий менеджер.
Оптимізуйте фінансовий розвиток компанії.

Если вкратце: циклы нужны для того, чтобы пользоваться созданным элементом, но при этом не писать одну и ту же строку кода несколько раз.

Основные типы циклов

В языке Python существуют 2 основных цикла: while и for. Рассмотрим подробно работу каждого из них.

Цикл while

Цикл while — один из самых распространенных в Python. Он позволяет воспроизводить элемент кода снова и снова, пока заданное условие остается верным (true). Чтобы цикл правильно работал, нужен фрагмент кода, который вы хотите использовать повторно, условие true или false и ключевое слово while .

Главное отличие цикла while от for состоит в том, что while может повторять код бесконечное количество раз, пока выполняется условие его применения.

Інтенсивний курс від laba: Project Manager.
Ведіть проекти до успішного завершення.

# Take user input number = 2 # Condition of the while loop while number < 5 : # Find the mod of 2 if number%2 == 0: print("The number "+str(number)+" is even") else: print("The number "+str(number)+" is odd") # Increment `number` by 1 number = number+1
The number 2 is even The number 3 is odd The number 4 is even

Освоить язык программирования Python вам могут помочь онлайн курсы от наших партнеров Mate Academy и Powercode. Получите качественный уровень знаний от практикующих специалистов.

Цикл for

Цикл for выполняет ту же функцию, что и while — повторяет указанные строки кода. Но в отличие от while, для работы for не требуется никаких условий. For используется для перебора последовательности, например, списка, и работает строго определенное количество раз.

Так выглядит код с использованием цикла for :

languages = ['R', 'Python', 'Scala', 'Java', 'Julia'] for index in range(len(languages)): print('Current language:', languages[index])
Current language: R Current language: Python Current language: Scala Current language: Java Current language: Julia

Функция range

Функция range используется при работе со строками цикла for, а также для создания последовательностей чисел. Рассмотрим на примере кода, как эта функция работает с целыми числами:

for number in range(5,10,2) : print("I am number : "+str(number))
I am number : 5 I am number : 7 I am number : 9

Для работы функции range указываются 2 или 3 числа:

Практичний курс від laba: Директор з продажу.
Створюйте та розвивайте успішний відділ продажів.

  • Первое число — start — с него функция начинает отсчет.
  • Второе число называется stop и обозначает конец выбранного промежутка чисел. В примере это цифра 10, поэтому функция не может показать число больше 10.
  • Третье число называется step : это шаг, который делает функция при переборе чисел. Можно не указывать шаг, и тогда в нашем примере функция покажет все числа от 5 до 10.

Заданный пример начинается с 5, к этому числу прибавляется по 2, пока мы не упремся в потолок функции. Так, получается следующая последовательность чисел:

Range также можно использовать с отрицательными числами и выполнять вычитание. Например:

for i in range(10, -5, -2): print(i)
10 8 6 4 2 0 -2 -4

Вложенные циклы

Циклы while и for можно как использовать по отдельности, так и комбинировать. Можно вложить цикл for внутрь внешнего цикла while и наоборот, а также вкладывать циклы одного вида друг в друга.

Спеціалізований курс від robotdreams: Frontend Engineer.
Створюйте вражаючий веб.

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

Вложенный цикл for

Рассмотрим на примере вложенного цикла for , как это работает на практике:

num_list = [1, 2, 3] alpha_list = ['a', 'b', 'c'] for number in num_list: print(number) for letter in alpha_list: print(letter)
1 a b c 2 a b c 3 a b c

По результату выполнения кода видно, что программа завершает первую итерацию внешнего цикла на цифре 1 и затем запускает завершение внутреннего цикла, печатая a, b, c. Как только внутренний цикл завершен, программа возвращается к началу внешнего цикла и печатает цифру 2, а после снова воспроизводит вложенный цикл.

Вложенный цикл while

Вложенный цикл while выглядит так:

i=1 while i
1 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completion 2 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completion 3 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completion

Выход из цикла

Если вам нужно пропустить какую-то часть цикла, то прервать его выполнение можно с помощью двух операторов: break или continue .

Break позволяет выйти из вложенного цикла сразу во внешний:

for number in range(3) : print("-------------------------------------------") print("I am outer loop iteration "+str(number)) for another_number in range(3): print("****************************") print("I am inner loop iteration "+str(another_number)) break
------------------------------------------- I am outer loop iteration 0 **************************** I am inner loop iteration 0 ------------------------------------------- I am outer loop iteration 1 **************************** I am inner loop iteration 0 ------------------------------------------- I am outer loop iteration 2 **************************** I am inner loop iteration 0

Если не использовать оператор break в этой части кода, то результат бы выглядел вот так:

------------------------------------------- I am outer loop iteration 0 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2 ------------------------------------------- I am outer loop iteration 1 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2 ------------------------------------------- I am outer loop iteration 2 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2

Оператор continue позволяет вернуться ко внешнему циклу, полностью пропуская вложенный цикл. В коде continue ставится в конце внешнего цикла:

for number in range(3) : print("-------------------------------------------") print("I am outer loop iteration "+str(number)) continue for another_number in range(3): print("****************************") print("I am inner loop iteration "+str(another_number)) break

В результате мы видим, что отсутствует внутренний цикл for , а повторяется только внешний элемент цикла:

------------------------------------------- I am outer loop iteration 0 ------------------------------------------- I am outer loop iteration 1 ------------------------------------------- I am outer loop iteration 2

Циклы for и while, операторы break и continue, волшебное слово else

Python 3 логотип

В этой статье я расскажу о циклах for и while, операторах break и continue, а также о слове else, которое, будучи употребленное с циклом, может сделать программный код несколько более понятным.

Цикл while

While - один из самых универсальных циклов в Python, поэтому довольно медленный. Выполняет тело цикла до тех пор, пока условие цикла истинно.

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

Оператор continue

Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла (for или while)

Оператор break

Оператор break досрочно прерывает цикл.

Слово else, примененное в цикле for или while, проверяет, был ли произведен выход из цикла инструкцией break, или же "естественным" образом. Блок инструкций внутри else выполнится только в том случае, если выход из цикла произошел без помощи break.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

#6 – Циклы и операторы в них (for, while)

#6 – Циклы и операторы в них (for, while)

В ходе урока мы с вами изучим тему циклов в языке Python. Мы научимся прописывать цикл for, а также цикл while. Дополнительно нами будут рассмотрены операторы break и continue, что используются в циклах.

Видеоурок

Циклы – одни из основных концепций языка Питон. Они позволяют выполнить одно и то же действие несколько раз подряд. Например, с помощью циклов часто выводят записи с базы данных, а также они крайне полезны во время работы с массивами данных. В Python циклы выглядят несколько иначе от своих аналогов в прочих языках.

Цикл Do While

Во многих языках программирования есть цикл do..while , который один раз запускается, а для повторного выполнения выполняет проверку условия и далее на её основе либо продолжает выполняться, либо выходить из цикла. В Питон подобного цикла не существует, но это не проблема, ведь создать алгоритм для такого цикла не сложно.

Всегда проверяйте, чтобы в коде не было бесконечных циклов. Результатом их работы становится зависание и прекращение работы программы. Если уж и использовать цикл, то нужно устанавливать интервал обновления в несколько секунд. Ещё можно создать бесконечный цикл и прервать его через оператор break .

Пример реализации своего цикла do..while :

a = 10 while True: # Сперва выполняем цикл a -= 1 if a == 0: # Далее прописываем проверку break

В данном примере цикл окажется корректным, ведь break в нужный момент завершит его выполнение.

# for i in range(1, 6, 2): # print(i) count = 0 word = "Hello World!" for i in word: if i == "w": count += 1 print("Count:", count)
Посмотреть остальной код можно после подписки на проект!

Задание к уроку

Работа с циклами

Выведите столбец чисел от 34 до 67 с выводом только четных чисел.

Используйте цикл while для этой задачи.

Циклы. While, do while, for, чем отличаются?

space2pacman

while - выполняется пока заданное выражение правда (проверка перед одним циклом выполнения)
while do - выполняется пока заданное выражение правда (проверка после одного цикла выполнения)
for - создано для выполнения кода n-ное количество раз
Вообще недавно видел забавную картинку, которая хорошо это дело демонстрирует

Спойлер

5c3367af26f7c126057439.jpeg

space2pacman

Ярослав Иванов @space2pacman

Rikonardo, ну вы то че))while и do while одинаковые. Разница в том что последний запускает тело цикла без проверки на первой итерации.

REKTOR_RG

Ярослав Иванов, ну по крайней мере нам на курсах c# рассказали, что do while проводит проверку после пробега кода внутри (итерации), а while сначала проверяет, а потом выполняет

space2pacman

Ярослав Иванов @space2pacman
Rikonardo, все верно) только это на первых итерациях. Потом они идентичны)

myjcom

while, do while, for

Прошу объяснить понятными определениями..

Решения вопроса 1
Программист на «си с крестами» и не только

While — сначала проверь, потом сделай, и так по кругу.
Do — сначала сделай, потом проверь, и так по кругу.

Отличаются они только случаем, когда условие не выполняется: while не пройдёт, а do пройдёт один раз.

// Пример 1. // верно while (впереди свободно) шаг; // неверно — можно врезаться в препятствие, если нельзя сделать ни шагу do шаг while (впереди свободно); // Пример 2. // Неверно — пока у вас в руках нет рубашки, условие цикла некорректно while (рубашка грязная) возьми рубашку; // верно do возьми рубашку; while (рубашка грязная);

Циклы for, foreach и прочие — это разновидность цикла while (не do!!), сделанная для специального сценария: пройти некий набор объектов.

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 4

webinar

Учим yii: https://youtu.be/-WRMlGHLgRg

Слишком очевидный ответ, если посмотреть на примеры: www.php.su/learnphp/cs/?cycles

Допустим у Вас есть коробочка в которой хранятся бутылочки с "пивасиком" и бутылочки с "молоком"
Если Ваш батя попросил протереть все бутылки из коробочки - это foreach
Если каждую бутылку, пока в коробке не закончится пивасик - это while
Если каждую бутылку, пока протертых бутылок с пивасиком станет 4 - это тоже while
Если каждую бутылку, пока в коробке не закончится пивасик, но раз уж взял бутылку последнюю с молоком, то будь любезен протри - это do-while
Если с 3-й по 12-ю - это for
Если только с молоком - это мамка, а не батя

Ответ написан более трёх лет назад
Нравится 10 3 комментария

space2pacman

Ярослав Иванов @space2pacman
Аналогия с пивасиком как раз ему зайдёт))) только надо ещё разбавить нецензурными словами.
Вы, учитель года :))

webinar

iMaximus, видимо нет, автор просил для детей 3-х лет, я старался. А ответами он отметил варианты 18+, со всякими взрослыми словечками 🙂

Вообще, эти три цикла взаимозаменяемы, т.е. если есть программа, написана с помощью одного из них, то она всегда может быть переписана с помощью любого другого. Но по правилам хорошего стиля и для удобства рекомендации следующие:
for используется, когда число итераций известно (есть переменная или константа, которая определяет это количество).
while и do-while используются, когда число итераций заранее неизвестно.
while используется, когда существует возможность, что цикл не выполнится ни разу, а do-while следует использовать, если известно, что как минимум одна итерация всегда требуется.

Для примера:
for - выведите N чисел на экран (N определяет число итераций).
while - алгоритм Евклида для вычисления НОД (если одно из чисел 0, то итераций не будет)
do-while - реализация игры "Угадай число". (всегда требуется хотя бы одна попытка, то точное их число неизвестно).

Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

lxsmkv

Test automation engineer

Нам в школе так обьяснили:
while - в зависимости от условия тело цикла может быть не выполнено ни разу.
do while - тело цикла будет выполнено минимум один раз.

ну а for - будет выполняется для выбраных элементов последовательности (какие это будут элементы - указывается в условии). Тут можно задать периодичность, например, для каждого второго элемента.

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

Как - то, почитал я ответы коллег, и остался разочарован. Понятно, что вопрос не простой, а очень простой, но можно и по аккуратнее в изложении. В общем, мои 5 копеек.
Любой цикл - это кусок кода, который обычно называют телом цикла, и который мы желаем выполнить несколько раз. Количество повторений может быть заданно заранее, например: цикл от 0 до 10, зависеть от данных, например: для каждого элемента массива или зависеть от значения, которое мы в теле цикла вычисляем, например: пока f(x) > 0 выполнять. По крайней мере, во всех известных мне языках программирования, есть оператор досрочного выхода из цикла.
while. Цикл с предварительным условием. Выполняется пока условие истинно. Проверка происходит до исполнения тела цикла. Если условие изначально ложно, то тело не выполнится ни разу. Если условие ни когда не станет ложным, то мы получим бесконечный цикл. Распространенные ошибки новичков, при использовании этого цикла:
- условие не зависит от переменных, которые изменяются в теле цикла, и оно всегда получается истинным
- условие ни когда не станет ложным, в силу его свойств, например: X * X >= 0 всегда верно
Пример на php:

$i = 1; while ($i

do . while. Цикл с постусловием. Отличие от предыдущего в том, что тело цикла исполняется хотя бы один раз, и после этого происходит проверка условия выхода из цикла. К типичным ошибкам предыдущего вида циклов добавляется то, что этот цикл гарантированно исполняется один раз, что не всегда желательно.
В этом примере цикл отработает один раз, не смотря на то, что условие ложно:

$i = 0; do < echo $i; >while ($i > 0);

for. Чаще всего этот оператор описывает цикл с фиксированным количеством повторений. Вот так он может выглядеть, например, для php:

for ($i = 1; $i

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *