HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Практически любой язык программирования содержит вложенные конструкции<strong>цикла</strong>, причём в большинстве случаев таких конструкций несколько.</p>
1 <p>Практически любой язык программирования содержит вложенные конструкции<strong>цикла</strong>, причём в большинстве случаев таких конструкций несколько.</p>
2 <p><strong>Python</strong>- не исключение. В списке техдокументации для<strong>Python</strong>есть<strong>2 типа циклов</strong>: - цикл<strong>while</strong>, - цикл<strong>for</strong>.</p>
2 <p><strong>Python</strong>- не исключение. В списке техдокументации для<strong>Python</strong>есть<strong>2 типа циклов</strong>: - цикл<strong>while</strong>, - цикл<strong>for</strong>.</p>
3 <p><strong>Циклы</strong>необходимы, если нам надо что-либо сделать множество раз, реализовать последовательность одинаковых действий. Речь идёт о выполнении какой-нибудь операции либо списков операций снова и снова.<strong>Циклы</strong>максимально упрощают этот процесс. Если говорить о вышеназванных циклах, то<strong>цикл for</strong>многие считают более популярным. С него и начнём.</p>
3 <p><strong>Циклы</strong>необходимы, если нам надо что-либо сделать множество раз, реализовать последовательность одинаковых действий. Речь идёт о выполнении какой-нибудь операции либо списков операций снова и снова.<strong>Циклы</strong>максимально упрощают этот процесс. Если говорить о вышеназванных циклах, то<strong>цикл for</strong>многие считают более популярным. С него и начнём.</p>
4 <h2>Цикл for в Python</h2>
4 <h2>Цикл for в Python</h2>
5 <p>Как было сказано выше, использование цикла целесообразно, если нужно повторить действие n-ное количество раз, выполнить некую последовательность одних и тех же операций. Рассмотрим это на примере. Возьмём встроенную в<strong>Python 3</strong>функцию range, которая создаёт список длиной в "n" элементов (в Python 2-й версии для этого надо было использовать функцию xrange - тоже генератор чисел, но не такой ресурсоёмкий).</p>
5 <p>Как было сказано выше, использование цикла целесообразно, если нужно повторить действие n-ное количество раз, выполнить некую последовательность одних и тех же операций. Рассмотрим это на примере. Возьмём встроенную в<strong>Python 3</strong>функцию range, которая создаёт список длиной в "n" элементов (в Python 2-й версии для этого надо было использовать функцию xrange - тоже генератор чисел, но не такой ресурсоёмкий).</p>
6 print(range(5)) # ответ: range(0, 5)<p>Как видим, функция в Python взяла целое число, а вернула объект range. Также она принимает конечное значение, начальное значение и значение шага. Приведём ещё пару примеров:</p>
6 print(range(5)) # ответ: range(0, 5)<p>Как видим, функция в Python взяла целое число, а вернула объект range. Также она принимает конечное значение, начальное значение и значение шага. Приведём ещё пару примеров:</p>
7 a = range(5, 10) print(a) # range(5, 10) b = list(range(1, 10, 2)) print(b) # [1, 3, 5, 7, 9]<p>В первом примере мы передаём начальное и конечное значение, при этом range возвращает список из чисел последовательности, начиная с начального, заканчивая последним (но не включая последний). Таким образом, при запросе 5-10 мы получаем 5-9 в прямом, а не обратном порядке.</p>
7 a = range(5, 10) print(a) # range(5, 10) b = list(range(1, 10, 2)) print(b) # [1, 3, 5, 7, 9]<p>В первом примере мы передаём начальное и конечное значение, при этом range возвращает список из чисел последовательности, начиная с начального, заканчивая последним (но не включая последний). Таким образом, при запросе 5-10 мы получаем 5-9 в прямом, а не обратном порядке.</p>
8 <p>Во 2-м случае используем<strong>функцию списка</strong>(list). В результате возвращается каждый 2-й элемент между 1-10 (наша последовательность будет равна 1, 3 и т. п., разумеется, также в прямом, а не обратном порядке).</p>
8 <p>Во 2-м случае используем<strong>функцию списка</strong>(list). В результате возвращается каждый 2-й элемент между 1-10 (наша последовательность будет равна 1, 3 и т. п., разумеется, также в прямом, а не обратном порядке).</p>
9 <p>Закономерный вопрос: а что функция range будет делать с использованием цикла? Давайте посмотрим:</p>
9 <p>Закономерный вопрос: а что функция range будет делать с использованием цикла? Давайте посмотрим:</p>
10 for number in range(5): print(number)<p>Что в данном случае произошло? Чтобы понять это, расшифруем наш код: 1. Мы вводим число для каждого числа в диапазоне 5. 2. Мы знаем, что при вызове range со значением 5 будет создан вложенный список из пяти элементов. 3. Каждый раз функция, проходя через цикл<strong>for</strong>, выведет каждый из этих элементов по списку.</p>
10 for number in range(5): print(number)<p>Что в данном случае произошло? Чтобы понять это, расшифруем наш код: 1. Мы вводим число для каждого числа в диапазоне 5. 2. Мы знаем, что при вызове range со значением 5 будет создан вложенный список из пяти элементов. 3. Каждый раз функция, проходя через цикл<strong>for</strong>, выведет каждый из этих элементов по списку.</p>
11 <p>Вышеупомянутый цикл<strong>for</strong>м. б. эквивалентом следующего:</p>
11 <p>Вышеупомянутый цикл<strong>for</strong>м. б. эквивалентом следующего:</p>
12 for number in [0, 1, 2, 3, 4]: print(number)<p>Здесь range просто выдаёт меньший результат.</p>
12 for number in [0, 1, 2, 3, 4]: print(number)<p>Здесь range просто выдаёт меньший результат.</p>
13 <h2>Что ещё "умеет" цикл for?</h2>
13 <h2>Что ещё "умеет" цикл for?</h2>
14 <p><strong>Цикл for</strong>способен обходить любой итератор<strong>Python</strong>. Мы видели особенности действия цикла при обработке списка и последовательности. А теперь взглянем, можно ли его использовать для выполнения итерации со словарём:</p>
14 <p><strong>Цикл for</strong>способен обходить любой итератор<strong>Python</strong>. Мы видели особенности действия цикла при обработке списка и последовательности. А теперь взглянем, можно ли его использовать для выполнения итерации со словарём:</p>
15 a_dict = {"one":1, "two":2, "three":3} for key in a_dict: print(key)<p>Если использовать<strong>for</strong>в словаре, легко заметить, что он перебирает ключи автоматически. К примеру, не нужно указывать for в a_dict.keys() (хотя это тоже работает).<strong>Python</strong>делает только то, что необходимо. Да, ключи выводятся в несколько другом порядке, который отличен от указанного в словаре. Однако словари не упорядочены, поэтому можно использовать итерацию над ними, а ключи при этом м. б. в любом порядке. Если вы знаете, что ключи можно отсортировать, это лучше сделать до итерации. Чтобы увидеть, как это работает, немного изменим словарь:</p>
15 a_dict = {"one":1, "two":2, "three":3} for key in a_dict: print(key)<p>Если использовать<strong>for</strong>в словаре, легко заметить, что он перебирает ключи автоматически. К примеру, не нужно указывать for в a_dict.keys() (хотя это тоже работает).<strong>Python</strong>делает только то, что необходимо. Да, ключи выводятся в несколько другом порядке, который отличен от указанного в словаре. Однако словари не упорядочены, поэтому можно использовать итерацию над ними, а ключи при этом м. б. в любом порядке. Если вы знаете, что ключи можно отсортировать, это лучше сделать до итерации. Чтобы увидеть, как это работает, немного изменим словарь:</p>
16 a_dict = {1:"one", 2:"two", 3:"three"} keys = a_dict.keys() keys = sorted(keys) for key in keys: print(key)<p>Результат использования данного<strong>цикла for в Python</strong>следующий:</p>
16 a_dict = {1:"one", 2:"two", 3:"three"} keys = a_dict.keys() keys = sorted(keys) for key in keys: print(key)<p>Результат использования данного<strong>цикла for в Python</strong>следующий:</p>
17 <p>Давайте разберём код данного цикла for подробнее. Во-первых, был создан словарь, где ключи выступают вместо строк в качестве целых чисел. Во-вторых, мы извлекли из словаря<strong>ключи</strong>. Каждый раз при вызове метода keys(), он возвращает нам неупорядоченный список ключей. И если при выводе списка мы видим, что они находятся в прямом либо обратном порядке, это просто случайность.</p>
17 <p>Давайте разберём код данного цикла for подробнее. Во-первых, был создан словарь, где ключи выступают вместо строк в качестве целых чисел. Во-вторых, мы извлекли из словаря<strong>ключи</strong>. Каждый раз при вызове метода keys(), он возвращает нам неупорядоченный список ключей. И если при выводе списка мы видим, что они находятся в прямом либо обратном порядке, это просто случайность.</p>
18 <p>Итак, получен доступ к ключам, хранимым в<strong>keys</strong>. Мы сортируем список, после чего нужно использовать цикл for в нём. Чтобы сделать процесс интереснее, попробуем использовать<strong>цикл for</strong>в функции range, однако для этого потребуется вывести лишь целые числа. Дабы это осуществить, придётся использовать<strong>условный оператор</strong>, а не параметр шага range, что делается так:</p>
18 <p>Итак, получен доступ к ключам, хранимым в<strong>keys</strong>. Мы сортируем список, после чего нужно использовать цикл for в нём. Чтобы сделать процесс интереснее, попробуем использовать<strong>цикл for</strong>в функции range, однако для этого потребуется вывести лишь целые числа. Дабы это осуществить, придётся использовать<strong>условный оператор</strong>, а не параметр шага range, что делается так:</p>
19 for number in range(10): if number % 2 == 0: print(number)<p>Результат работы<strong>цикла fo</strong>r таков:</p>
19 for number in range(10): if number % 2 == 0: print(number)<p>Результат работы<strong>цикла fo</strong>r таков:</p>
20 <p>Возможно, не все поняли, что происходит и откуда в цикле знак процента. Если кто подзабыл, в Python, % - это<strong>оператор модуля</strong>. Когда его используют, возвращается остаток. При делении целого числа на 2, остатка, разумеется, нет.</p>
20 <p>Возможно, не все поняли, что происходит и откуда в цикле знак процента. Если кто подзабыл, в Python, % - это<strong>оператор модуля</strong>. Когда его используют, возвращается остаток. При делении целого числа на 2, остатка, разумеется, нет.</p>
21 <p>После разговора о цикле for пришла пора познакомиться с<strong>циклом while</strong>.</p>
21 <p>После разговора о цикле for пришла пора познакомиться с<strong>циклом while</strong>.</p>
22 <h2>Цикл while</h2>
22 <h2>Цикл while</h2>
23 <p>Цикл while хорошо использовать для повторений частей кода. Здесь вместо зацикливания n-е количество раз цикл будет работать,<strong>пока не исполнится определённое условие</strong>.</p>
23 <p>Цикл while хорошо использовать для повторений частей кода. Здесь вместо зацикливания n-е количество раз цикл будет работать,<strong>пока не исполнится определённое условие</strong>.</p>
24 <p>Пример работы цикла while в Python:</p>
24 <p>Пример работы цикла while в Python:</p>
25 i = 0 while i &lt; 10: print(i) i = i + 1<p><strong>Цикл while</strong>по сути - это один из вложенных условных операторов. Если говорить о коде цикла, который мы решили использовать выше, на экран будет выводиться переменная i до тех пор, пока она меньше десяти. То есть с запуском этого кода в Python вы получите список от 0 до 9, сформированный в прямом, а не обратном порядке, причём каждая цифра выведется в отдельной строке, и<strong>цикл завершится</strong>.</p>
25 i = 0 while i &lt; 10: print(i) i = i + 1<p><strong>Цикл while</strong>по сути - это один из вложенных условных операторов. Если говорить о коде цикла, который мы решили использовать выше, на экран будет выводиться переменная i до тех пор, пока она меньше десяти. То есть с запуском этого кода в Python вы получите список от 0 до 9, сформированный в прямом, а не обратном порядке, причём каждая цифра выведется в отдельной строке, и<strong>цикл завершится</strong>.</p>
26 <p>Однако, удалив часть кода с увеличением значения i, мы получим<strong>бесконечный цикл</strong>, а это уже плохо. Бесконечные циклы называют логическими ошибками, которых лучше избегать. Но это не значит, что в таком случае нельзя будет "вырваться" из цикла. Можно, если использовать вложенные функции в Python, например, break:</p>
26 <p>Однако, удалив часть кода с увеличением значения i, мы получим<strong>бесконечный цикл</strong>, а это уже плохо. Бесконечные циклы называют логическими ошибками, которых лучше избегать. Но это не значит, что в таком случае нельзя будет "вырваться" из цикла. Можно, если использовать вложенные функции в Python, например, break:</p>
27 while i &lt; 10: print(i) if i == 5: break i += 1<p><em>Узнать больше про<strong>Python-циклы</strong>вы всегда сможете на наших курсах. Изучайте циклы, списки, функции, классы и другие нюансы "Пайтона" вместе с<strong>OTUS</strong>!</em></p>
27 while i &lt; 10: print(i) if i == 5: break i += 1<p><em>Узнать больше про<strong>Python-циклы</strong>вы всегда сможете на наших курсах. Изучайте циклы, списки, функции, классы и другие нюансы "Пайтона" вместе с<strong>OTUS</strong>!</em></p>
28  
28