№15 Цикл for / Уроки по Python для начинающих

Предыдущий урок: Цикл while

Цикл for используется для итерации по последовательности (list, tuple, dict, set или str).
Так же это похоже на применение ключевого слова for в других языках программирования, на метод итератора, как в других объектно-ориентированных языках программирования.

С помощью цикла for мы можем выполнить набор действий для каждого элемента в list, tuple, set и т.д.

Выведите каждый фрукт из списка фруктов:

fruits = ["яблоко", "банан", "вишня"]  
for x in fruits:  
    print(x)

Вывод:

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

Цикл for не требует создания дополнительных переменных для итерации.

Итерация по строке

Даже строки являются итерируемыми объектами и содержат последовательность символов.
Получим буквы слова “Банан”:

for x in "Банан":  
    print(x)

Вывод:

Б
а
н
а
н

Оператор break

Благодаря оператору break мы можем остановить цикл прежде чем он закончится по всем элементам:
Завершим из цикл когда x — “банан”:

fruits = ["яблоко", "банан", "вишня"]  
for x  in fruits:  
    print(x)  
    if x == "банан":  
        break

Вывод:

яблоко
банан

Выйдем из цикла когда x — “банан”, но в этот раз if будет перед выводом:

fruits = ["яблоко", "банан", "вишня"]
for x in fruits:
    if x == "банан":
        break
    print(x)

Вывод:

яблоко

Оператор continue

С помощью оператора continue мы можем остановить текущую итерацию цикла и перейти к следующей
Пропустим вывод “банан”:

fruits = ["яблоко", "банан", "вишня"]
for x in fruits:
    if x == "банан":
        continue
    print(x)

Вывод:

яблоко
вишня

Функция range()

Функция range() применяется что бы выполнить действия заданное количество раз. Она возвращает последовательность чисел, начиная с 0 (по умолчанию) увеличивает число на 1 (по умолчанию) и заканчивая указанным числом.

for x in range(6):  
    print(x)

Вывод:

0
1
2
3
4
5

Обратите внимание range(6) означает повтор цикла 6 раз, но не числа с 0 до 6.

Функция range() по умолчанию начинается с 0, однако можно изменить начальное значение, добавив параметр: range (2, 6), что означает значения от 2 до 6 (но не включая 6):

for x in range(2,  6):  
    print(x)

Вывод:

2
3
4
5

Функция range () по умолчанию увеличивает последовательность на 1, однако можно указать значение приращения, добавив третий параметр: range (2, 30, 3):

for x in range(2, 30, 3):
    print(x)

Вывод:

2  
5  
8  
11  
14  
17  
20  
23  
26  
29

Else в цикле For

Ключевое слово else в цикле for включает блок кода, который должен быть выполнен после завершения цикла:

for x in range(6):  
    print(x)  
else:  
    print("Цикл завершен!")

Вывод:

0
1
2
3
4
5
Цикл завершен!

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

Вложенный цикл — это цикл в цикле. Он будет запускаться при каждой итерации основного цикла.
Выведем все фрукты с каждым прилагательным:

adj = ["желтый", "большой", "вкусный"]
fruits = ["апельсин", "банан", "ананас"]
  
for x in adj:
    for y in fruits:
        print(x, y)

Вывод:

желтый апельсин
желтый банан
желтый ананас
большой апельсин
большой банан
большой ананас
вкусный апельсин
вкусный банан
вкусный ананас

Рекурсия

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

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

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

В этом примере tri_recursion() — это функция, которую мы определили для рекурсии. В качестве данных мы используем переменную k, которая уменьшается (-1) каждый раз, когда мы рекурсируем. Рекурсия заканчивается, когда условие не больше 0 (т. е. когда оно равно 0).

Начинающему разработчику может потребоваться некоторое время, чтобы понять, как именно это работает. Лучший способ выяснить это — протестировать и модифицировать ее.


def tri_recursion(k):  
    if(k>0):  
        result = k+tri_recursion(k-1)  
        print(result)  
    else:  
        result =  0  
    return result  
  
print("\n\nРезультат примера рекурсии")  
tri_recursion(6)

Вывод:



Результат примера рекурсии
1  
3  
6  
10  
15  
21

Далее: Функции в Python