Циклы в Python

Введение

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

Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода).

Статьи
Цикл for
continue

>>> numbers = [1, 2, 3, 5, 7] >>> squares = (n**2 for n in numbers) >>> squares <generator object <genexpr> at 0x00000159BD890520> >>> >>> tuple(squares) (1, 4, 9, 25, 49) >>> >>> sum(squares) 0 >>> >>> squares = (n**2 for n in numbers) >>> 9 in squares True >>> 9 in squares False >>> >>> >>> >>> counts = {"apples": 2, "oranges": 1} >>> x, y = counts >>> x == ("apples", 2) False >>> x 'apples'

C-style for loop

let numbers = [1, 2, 3, 5, 7]; for (let i = 0; i < numbers.length; i+=1) { print(numbers[i]) }

1 2 3 5 7

В Python таких циклов for нет. По объекту, который является последовательностью можно перемещаться с помощью индексов.

numbers = [1, 2, 3, 5, 7] i = 0 while i < len(numbers): print(numbers[i]) i += 1

1 2 3 5 7

С объектами, которые не являются последовательностями такой способ не сработает.

cities = {"benalmadena", "fuengirola", "malaga", "torremolinos"} i = 0 while i < len(cities): print(cities[i]) i += 1

Traceback (most recent call last): File "C:\Users\AO\set_while_ex.py", line 4, in <module> print(cities[i]) ~~~~~~^^^ TypeError: 'set' object is not subscriptable

def funky_for_loop(iterable, action_to_do): for item in iterable: action_to_do(item)

С помощью цикла while и функций iter() и next() можно создать аналог цикла for не только для последовательностей но для всех итерируемых объектов.

def funky_for_loop(iterable, action_to_do): iterator = iter(iterable) done_looping = False while not done_looping: try: item = next(iterator) except StopIteration: done_looping = True else: action_to_do(item)

Похожие статьи
Python
Цикл for in
continue
Collections

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: