python
July 3

чо за циклы змеиные

в питоне существует два вида циклов: for и while. В чем собсна различия и что это вообще такое.

Для начала нужно разобраться в том, что вообще такое цикл. Код в Python обычно выполняется последовательно: первая строка, потом вторая, третья и так далее. Но некоторые конструкции позволяют нарушать этот порядок, чтобы совершать более сложные операции.

Например, циклы выполняют один и тот же блок кода несколько раз.

Любой цикл состоит из двух частей:

  • условие — начальный параметр; цикл запустится только при его выполнении и закончится, как только условие перестанет выполняться;
  • тело — сама программа, которая выполняется внутри цикла.

Цикл while

Цикл while или цикл с условием выполняется пока выполняется какое-то условие.

Например, во время гонок водители не сходят с трассы, пока не проедут 5 кругов.

Начинаем со старта и проезжаем первый круг, потом второй, потом третий и так далее. Когда мы проехали пятый круг, мы выходим из гонки. На питоне такой алгоритм может выглядеть так:

krug = 1
while krug < 6:
    print("номер круга:", krug)
    krug += 1
    
#вывод: 
#номер круга: 1
#номер круга: 2
#номер круга: 3
#номер круга: 4
#номер круга: 5

Сначала мы проехали круг под номером 1. Далее мы выводим номер круга и проезжаем следующий, пока не дойдем до последнего. Когда мы дошли до последнего круга мы выходим из гонки(т.е. из цикла)

Как только krug становится равным 6, условие krug < 6 перестаёт выполняться, и цикл завершается.

Цикл for

Цикл for — перебор элементов

Этот цикл проходит по каждому элементу коллекции (например, списку, строке или диапазону) и выполняет код для каждого элемента.

fruits = ["яблоко", "банан", "вишня"]
for fruit in fruits:  # Для каждого элемента в списке
    print(fruit)

То есть, он берет, например, список и делает какие-то действия с каждым элементом из этого списка. В нашем случае он просто выводит все фрукты по очереди.

Вывод:

яблоко
банан
вишня

Что за range?

Цикл for i in range() — одна из самых часто используемых конструкций в Python. Она позволяет выполнять блок кода заданное количество раз или перебирать числа в определённом диапазоне.

Функция range() генерирует последовательность чисел. Она может принимать три параметра:

range(start, stop, step) 
  • start — начало диапазона (по умолчанию 0).
  • stop (обязательно) — конец диапазона (не включается в результат).
  • step — шаг (по умолчанию 1).

Немножко примеров

Вот например что выведет следующая программа:

for i in range(0, 10, 2):  # Чётные числа от 0 до 9
    print(i)
Вывод:
0
2
4
6
8

Мы как бы говорим циклу: " начни с числа 0 и иди до числа 10(не включительно) с шагом 2. ". Он собсна так и делает, начинает с нуля, далее, он вспоминает, что мы велели ему иди с шагом 2, т.е. идти через число. А что стоит через число от нуля? Правильно, двойка, а дальше что? Правильно, четверка. Ну и так далее до 9. (ПОМНИМ, ЧТО ЧИСЛО, КОТОРОЕ СТОИТ В STOP НЕ ВКЛЮЧАЕТСЯ.)

Вывод

  • while — цикл с условием, работает, пока оно истинно.
  • for — цикл по коллекции, перебирает элементы один за другим.