Цикл является важным аспектом любого языка программирования.
В Python, цикл является очень гибким и мощным.
В этой статье мы объясним следующие примеры цикла в Python.
Ниже приведен общий синтаксис для цикла в Python:
for {variable} in {some-sequence-type}: {python-statements} else: {python-statements}
В Python, цикл может перебирать несколько типов последовательностей, таких как списки, строки, кортежи и т.д.
Чтобы перебрать список чисел, мы просто должны создать список чисел и передать его в качестве аргумента для цикла, как показано ниже.
# cat for1.py for i in [1, 2, 3, 4, 5]: print(i)
В приведенном выше примере:
Ниже приведен вывод программы выше:
# python for1.py 1 2 3 4 5
Как и перечисление выше списка чисел, вы также можете перебрать список строк, как показано в следующем примере:
# cat for2.py names = ["andreyex", "oleg", "lena"] for i in names: print(i)
В приведенном выше примере:
Ниже приведен выход программы выше:
# python for2.py andreyex oleg lena
В Python, когда вы имеете дело с циклом по числам, вы можете использовать функцию диапазона, что чрезвычайно удобно.
Функция range произведет список цифр на основе заданных критериев.
В следующем примере, аргумент функции диапазона 5. Давайте посмотрим, как цикл поведет себя.
# cat for3.py for i in range(5): print(i)
Следующий вывод напечатал 5 строк. Но, как вы видите, она начинается с 0 (вместо 1).
# python for3.py 0 1 2 3 4
Если вы не хотите, чтобы последовательность чисел начиналась с 0, вы можете также указать начальное число и конечное значения в функции range, как показано в примере ниже.
# cat for4.py for i in range(1,6): print(i)
В приведенном выше примере:
Ниже приведен вывод программы выше. Опять же, обратите внимание, что она начинается с 1 и заканчивается через 5 (а не 6).
# python for4.py 1 2 3 4 5
Помимо указания начального и конечного значения, мы можем также указать приращение числа.
Например, если вы хотите получить последовательность: 1, 3, 5, 7, 9, …, то приращение значение в этом случае будет 2, так как мы увеличиваем следующее значение на 2.
В следующем примере, мы генерируем число от 1 до 6 с шагом 2.
# cat for5.py for i in range(1,6,2): print(i)
Ниже приведен вывод программы выше.
# python for5.py 1 3 5
Опять же, как вы видите здесь, когда мы даем 6 в качестве конечного значения, он будет идти только до 5. В этом случае мы также увеличивающимся на 2. Просто чтобы быть ясно:
В функции диапазона внутри для цикла, мы можем также указать отрицательные значения.
В приведенном ниже примере, мы используем отрицательные числа для конечного значения (-5) и приращения стоимости (-2).
# cat for6.py for i in range(4,-5,-2): print(i)
Ниже приведен выход программы выше:
# python for6.py 4 2 0 -2 -4
Как видно из приведенного выше вывода, последовательность начинается с начального значения (которая составляет 4), а затем увеличивает следующее значение числа (равное -2), и продолжает идти весь путь до конца.
Вы можете использовать заявление «continue» внутри Python для цикла. При выполнение в цикле заявления «continue», он не будет выполнять остальную часть кода в блоке цикла, вместо этого он начнет цикл снова для следующего элемента в списке.
В следующем примере показано, как продолжить работу внутри continue для цикла.
# cat for7.py names = ["andreyex", "lena", "oleg", "lena"] for i in names: if i != "lena": continue print(i) print("--end--")
В приведенном выше примере:
Ниже приведен вывод программы выше:
# python for7.py lena lena --end--
Точно так же как заявление continue, вы можете также указать «break» внутри вашего цикла в Python.
Как вы можете себе представить, если в цикле встречается «break», то он полностью остановит итерацию цикла и выйдет из цикла. После заявления «break», он не будет обрабатывать оставшиеся элементы в списке из цикла.
В следующем примере показано, как работает break.
# cat for8.py names = ["andreyex", "lena", "oleg", "lena"] for i in names: if i == "oleg": break print(i) print("--end--")
Как видно из следующего вывода, в случае, когда название будет равно «oleg», она выйдет для цикла. В этом случае, «oleg» является третьим пунктом в списке. Таким образом, наш цикл напечатает только 1-ые два имени.
# python for8.py andreyex lena --end--
Это уникальная особенность в Python.
Как правило, мы используем «else» только в сочетании с заявлением «if», как мы объяснили ранее.
Но, в Python, мы можем использовать «else» в сочетании с заявлением «for», как объяснено в данном примере.
Все, что внутри блока else в цикле будет выполнено, когда цикл терпит неудачу, как показано ниже.
# cat for9.py names = ["andreyex", "oleg", "lena"] for i in names: print(i) else: print("условие для цикла потерпело неудачу!")
В приведенном выше примере:
Ниже приведен результат приведенного выше примера:
# python for9.py andreyex oleg lena условие для цикла потерпело неудачу!
Это может звучать так, что нам на самом деле не нужен «else» внутри «for», если он только запускается на выполнение в конце цикла для итерации.
Но следующий пример прояснит немного больше о том, какое преимущество «else» имеет внутри для цикла.
В предыдущем примере, мы объяснили, как «else» работает внутри цикла, которая является уникальным для Python.
Одна важная вещь, чтобы понять, что если у вас есть заявление «break» в вашем блоке цикла, то «другая» часть не будет выполнена.
Следующий пример объясняет поведение комбинации break и else внутри для цикла.
# cat for10.py names = ["andreyex", "lena", "oleg", "lena"] for i in names: if i == "oleg": break print(i) else: print("условие для цикла потерпело неудачу!") print("--end--")
Как видно из приведенного ниже вывода, команда print внутри «else» не стало выполняться на этот раз, потому что цикл встретил «break» и вышел из цикла.
# python for10.py andreyex lena --end--
Так же, как и любые другие языки программирования, в Python также вы можете иметь вложенные циклы.
При объединении нескольких циклов, это может стать очень эффективно.
В следующем примере показано, как работает вложенный цикл.
# cat for11.py distros = ["centos", "redhat", "ubuntu"] arch = ["32-bit", "64-bit"] for i in distros: for j in arch: print(i + " " + j) print("-----------")
В приведенном выше примере:
Ниже приведен результат приведенного выше примера:
# python for11.py centos 32-bit centos 64-bit ----------- redhat 32-bit redhat 64-bit ----------- ubuntu 32-bit ubuntu 64-bit -----------
В следующем примере показано, как можно использовать список в списке в цикле.
# cat for12.py multiple_state_lists = [ ["CA","NV","UT"], ["NJ","NY","RU"]] for state_list in multiple_state_lists: for state in state_list: print state
В приведенном выше примере:
Ниже приведен результат приведенного выше примера:
# python for12.py CA NV UT NJ NY RU