Для цикла в Python

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

В Python он предназначен для итерации по итерируемому объекту, будь то список, объект или другой элемент.

Следующая структура

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in h2:
   instructions

Здесь h2 — повторяемый элемент, например, список h2=[ 'Валенсия', 'Кастельон', 'Аликанте']. Цикл будет иметь 3 итерации, в первой j=Valencia, во второй переменная j=Castellón.

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

Повторить цикл for точное количество раз.

Если мы хотим, чтобы это повторялось определенное количество раз, как мы можем сделать в C++, нам придется использовать range(). Чтобы повторить 10 раз, мы использовали бы

for element in Range(9):
    instructions

Мы ставим 9, а не 10, потому что диапазон начинается с 0, поэтому от 0 до 9 есть 10 итераций или поворотов цикла.

Знание Range() позволяет нам вместо того, чтобы помещать внутрь число, поместить переменную, с которой у нас будет гораздо больше контроля.

var = 10
for element in Range(var):
    instructions

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

Для управления потоком цикла for можно сделать гораздо больше.

Заявления о разрыве и продолжении

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

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

Ломать

С помощью break мы можем выйти из цикла в любое время. Как вы себе очень полезно. Это правда, что есть и другие структуры, такие как While,

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        break
else:
    print('No se encontró el número 3')

Продолжить

Это заставляет нас перейти к следующему элементу в цикле.

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        continue
else:
    print('No se encontró el número 3')

https://j2logo.com/bucle-for-en-python/

Для … еще

Существует структура, производная от For, которая предназначена для … else

datos = [1, 2, 3, 4, 5]
for n in datos:
    if n == 2:
        break
else:
    print('No hay 2')

Эта структура возникла после того, как они увидели, что это необходимо и что многие используют для этого альтернативные способы. Таким образом они помогают людям и получают более читаемый код

для _ в итерации

Я видел это в некоторых программах, хотя никогда не использовал его.

Когда мы перебираем объект, список, словарь и т. д., но содержимое этих элементов нас не интересует, мы можем указать это с помощью _

Пример:

Мы хотим посчитать элементы списка, но нам все равно, что он содержит, нам нужна только его длина.

h2=[ 'Valencia', 'Castellón', 'Alicante']
count = 0
for _ in h2:
    cont += 1

На многих сайтах рекомендуют не злоупотреблять этой практикой. Я действительно не знаю, какие преимущества это дает, это быстрее?

петля назад

назад для цикла. Итерация от конца к началу

Он использует функцию reversed(), представленную в Python 3.

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in reversed(h2):
    print (j)

Цикл с двумя индексами, значение итерации и индекс

С помощью enumerate() мы можем работать с индексами коллекции. Потому что много раз помимо значения самого итерируемого объекта нас интересует его индекс.

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j, h in enumerate(h2):
    print j, '-->', h2[i] 

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

Еще одна очень интересная опция — zip(), которая облегчит нашу работу и сделает наш код более простым и читабельным.

h2=[ 'Valencia', 'Castellón', 'Alicante']
cod=[100, 200, 300]

for j, h in zip(h2, cod):
    print h2, '-->', cod 

В Python 2.x izip() использовался для улучшения этой функции, но в Python 3 izip — это zip().

Цикл в отсортированном порядке

Итерация по порядку по значению объекта, а не по его индексу. используется отсортированный()

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors):
    print color

И если мы хотим сделать это в обратном порядке

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, reverse=True):
    print color

Пользовательский порядок сортировки

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, key=len):
    print color

Sentinel Value в цикле for

Сторожевое значение — это значение, которое приводит к завершению цикла. Обычно он представлен в цикле while, но Рэймонд Хеттингер показывает нам, как использовать его с циклом for, который быстрее.

blocks = []
for block in iter(partial(f.read, 32), ''):
    blocks.append(block)
    print (block)

Словари обхода с for

Словари являются важными инструментами для выражения отношений и группирования.

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

d = {'casa': 'azul', 'coche': 'rojo', 'hombre': 'verde'}

for k in d.keys():
    if k.startswith('r'):
        del d[k]

Таким образом, помимо просмотра элементов, мы можем изменять словарь, изменяя элементы или удаляя их одновременно с итерацией цикла for.

d.keys() вызывает аргументы и создает копию, которую сохраняет в списке, который мы можем изменить.

Получить индексы и значения вместо чего-то традиционного, и это первое, что приходит на ум тем из нас, кто начинает программировать.

for k in d:
    print k, '-->', d[k]

Мы будем использовать этот гораздо более быстрый вариант

for k, v in d.items():
    print k, '-->', v

iteritems(), чем items()

Разговор о циклах в Python от Рэймонда Хеттингера

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

Оставить комментарий