HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#Руководства</a></p>
1 <p><a>#Руководства</a></p>
2 <ul><li>4 апр 2023</li>
2 <ul><li>4 апр 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Они есть практически в каждом языке программирования, но в Python с ними работать приятнее всего. Как, впрочем, и со всем остальным.</p>
4 </ul><p>Они есть практически в каждом языке программирования, но в Python с ними работать приятнее всего. Как, впрочем, и со всем остальным.</p>
5 <p>Иллюстрация: Катя Павловская для Skillbox Media</p>
5 <p>Иллюстрация: Катя Павловская для Skillbox Media</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
7 <p>Код в Python обычно выполняется последовательно: первая строка, потом вторая, третья и так далее. Но некоторые конструкции позволяют нарушать этот порядок, чтобы совершать более сложные операции.</p>
7 <p>Код в Python обычно выполняется последовательно: первая строка, потом вторая, третья и так далее. Но некоторые конструкции позволяют нарушать этот порядок, чтобы совершать более сложные операции.</p>
8 <p>Например,<strong>циклы</strong>выполняют один и тот же блок кода несколько раз. В Python есть два основных вида циклов:<strong>while</strong>и <strong>for</strong>. О них и поговорим.</p>
8 <p>Например,<strong>циклы</strong>выполняют один и тот же блок кода несколько раз. В Python есть два основных вида циклов:<strong>while</strong>и <strong>for</strong>. О них и поговорим.</p>
9 <ul><li><a>Как работают циклы</a></li>
9 <ul><li><a>Как работают циклы</a></li>
10 <li><a>Цикл while в Python</a></li>
10 <li><a>Цикл while в Python</a></li>
11 <li><a>Цикл for в Python</a></li>
11 <li><a>Цикл for в Python</a></li>
12 </ul><ul><li><a>Функция range()</a></li>
12 </ul><ul><li><a>Функция range()</a></li>
13 <li><a>Однострочный цикл: генератор списков</a></li>
13 <li><a>Однострочный цикл: генератор списков</a></li>
14 </ul><ul><li><a>Прерывание цикла: ключевое слово break</a></li>
14 </ul><ul><li><a>Прерывание цикла: ключевое слово break</a></li>
15 <li><a>Пропуск части цикла: ключевое слово continue</a></li>
15 <li><a>Пропуск части цикла: ключевое слово continue</a></li>
16 <li><a>Последнее действие в цикле: ключевое слово else</a></li>
16 <li><a>Последнее действие в цикле: ключевое слово else</a></li>
17 <li><a>Бесконечный цикл</a></li>
17 <li><a>Бесконечный цикл</a></li>
18 <li><a>Как сделать аналог do while в Python</a></li>
18 <li><a>Как сделать аналог do while в Python</a></li>
19 <li><a>Вложенные циклы в Python</a></li>
19 <li><a>Вложенные циклы в Python</a></li>
20 </ul><p>Любой цикл состоит из двух обязательных элементов:</p>
20 </ul><p>Любой цикл состоит из двух обязательных элементов:</p>
21 <ul><li><strong>условие</strong> - начальный параметр; цикл запустится только при его выполнении и закончится, как только условие перестанет выполняться;</li>
21 <ul><li><strong>условие</strong> - начальный параметр; цикл запустится только при его выполнении и закончится, как только условие перестанет выполняться;</li>
22 <li><strong>тело</strong>- сама программа, которая выполняется внутри цикла.</li>
22 <li><strong>тело</strong>- сама программа, которая выполняется внутри цикла.</li>
23 </ul><p>Схематически его можно представить так:</p>
23 </ul><p>Схематически его можно представить так:</p>
24 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>В синтаксисе Python в конце строки с условием ставится двоеточие, а всё тело выделяется отступом (табуляцией или четырьмя пробелами).</p>
24 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>В синтаксисе Python в конце строки с условием ставится двоеточие, а всё тело выделяется отступом (табуляцией или четырьмя пробелами).</p>
25 программа до цикла условие: первая строка тела вторая строка тела программа после цикла<p><strong>While</strong>- наиболее простой и понятный вид цикла. Его ещё называют циклом с предусловием.</p>
25 программа до цикла условие: первая строка тела вторая строка тела программа после цикла<p><strong>While</strong>- наиболее простой и понятный вид цикла. Его ещё называют циклом с предусловием.</p>
26 x = 1 while x &lt; 5: print(x) x += 1 # Означает то же самое, что x = x + 1 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2 &gt;&gt;&gt; 3 &gt;&gt;&gt; 4<p>С языка Python на русский программу можно перевести так: "Пока икс меньше пяти, печатай икс и прибавляй к нему единицу".</p>
26 x = 1 while x &lt; 5: print(x) x += 1 # Означает то же самое, что x = x + 1 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2 &gt;&gt;&gt; 3 &gt;&gt;&gt; 4<p>С языка Python на русский программу можно перевести так: "Пока икс меньше пяти, печатай икс и прибавляй к нему единицу".</p>
27 <p>Но в простоте while кроется и опасность: его легко сделать бесконечным. Например, если в коде выше мы уберём x += 1, то получится вот так:</p>
27 <p>Но в простоте while кроется и опасность: его легко сделать бесконечным. Например, если в коде выше мы уберём x += 1, то получится вот так:</p>
28 # Этот код будет выполняться бесконечно x = 1 while x &lt; 5: print(x)<p>Здесь с <a>переменной</a>x ничего не происходит. Она всегда равна единице, поэтому условие цикла никогда не перестанет выполняться. Соответственно, он никогда не завершится.</p>
28 # Этот код будет выполняться бесконечно x = 1 while x &lt; 5: print(x)<p>Здесь с <a>переменной</a>x ничего не происходит. Она всегда равна единице, поэтому условие цикла никогда не перестанет выполняться. Соответственно, он никогда не завершится.</p>
29 <p>Чтобы избежать таких ситуаций, при использовании while нужно следить: перестанет ли когда-нибудь выполняться условие? Ещё можно использовать оператор break - о нём мы расскажем чуть позже.</p>
29 <p>Чтобы избежать таких ситуаций, при использовании while нужно следить: перестанет ли когда-нибудь выполняться условие? Ещё можно использовать оператор break - о нём мы расскажем чуть позже.</p>
30 <p>Цикл for программисты используют куда чаще, чем while. Для него мы устанавливаем не условие в чистом виде, а некий<a>массив данных</a>: список, кортеж, строку, словарь, диапазон или любой другой итерируемый объект.</p>
30 <p>Цикл for программисты используют куда чаще, чем while. Для него мы устанавливаем не условие в чистом виде, а некий<a>массив данных</a>: список, кортеж, строку, словарь, диапазон или любой другой итерируемый объект.</p>
31 <p>На каждой итерации цикла программа как бы спрашивает: "Остались ли в объекте ещё элементы, по которым я не прошла?"</p>
31 <p>На каждой итерации цикла программа как бы спрашивает: "Остались ли в объекте ещё элементы, по которым я не прошла?"</p>
32 <p>Допустим, у нас есть список с числами: [14, 101, -7, 0]. Мы можем использовать его вместе с for, чтобы напечатать каждый элемент по отдельности.</p>
32 <p>Допустим, у нас есть список с числами: [14, 101, -7, 0]. Мы можем использовать его вместе с for, чтобы напечатать каждый элемент по отдельности.</p>
33 num_list = [14, 101, -7, 0] for number in num_list: print(number) &gt;&gt;&gt; 14 &gt;&gt;&gt; 101 &gt;&gt;&gt; -7 &gt;&gt;&gt; 0<p>Здесь переменная number обновляется при каждом новом витке цикла. Сначала она хранит в себе первый элемент, потом второй, и так - пока список не закончится.</p>
33 num_list = [14, 101, -7, 0] for number in num_list: print(number) &gt;&gt;&gt; 14 &gt;&gt;&gt; 101 &gt;&gt;&gt; -7 &gt;&gt;&gt; 0<p>Здесь переменная number обновляется при каждом новом витке цикла. Сначала она хранит в себе первый элемент, потом второй, и так - пока список не закончится.</p>
34 <p>Как и любую другую переменную, мы могли назвать number как угодно. Часто используют буквы i, j и k. Если внутри цикла мы ни разу не обращаемся к этой переменной, то среди питонистов её принято обозначать символом нижнего подчёркивания _.</p>
34 <p>Как и любую другую переменную, мы могли назвать number как угодно. Часто используют буквы i, j и k. Если внутри цикла мы ни разу не обращаемся к этой переменной, то среди питонистов её принято обозначать символом нижнего подчёркивания _.</p>
35 <p>Когда нужно применить for к числовому промежутку, его можно<strong>задать диапазоном</strong>. Для этого используют функцию range(). В неё можно передать от одного до трёх аргументов.</p>
35 <p>Когда нужно применить for к числовому промежутку, его можно<strong>задать диапазоном</strong>. Для этого используют функцию range(). В неё можно передать от одного до трёх аргументов.</p>
36 <p><strong>Если аргумент один</strong>, то сформируется диапазон от нуля до числа, предшествующего значению аргумента.</p>
36 <p><strong>Если аргумент один</strong>, то сформируется диапазон от нуля до числа, предшествующего значению аргумента.</p>
37 for i in range(3): print(i) &gt;&gt;&gt; 0 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2<p><strong>Если аргумента два</strong>, то сформируется диапазон от значения первого аргумента до числа, предшествующего значению второго аргумента.</p>
37 for i in range(3): print(i) &gt;&gt;&gt; 0 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2<p><strong>Если аргумента два</strong>, то сформируется диапазон от значения первого аргумента до числа, предшествующего значению второго аргумента.</p>
38 for i in range(23, 26): print(i) &gt;&gt;&gt; 23 &gt;&gt;&gt; 24 &gt;&gt;&gt; 25<p><strong>Если аргумента три</strong>, то первые два работают, как в прошлом случае. Третий же означает шаг, с которым числа следуют друг за другом.</p>
38 for i in range(23, 26): print(i) &gt;&gt;&gt; 23 &gt;&gt;&gt; 24 &gt;&gt;&gt; 25<p><strong>Если аргумента три</strong>, то первые два работают, как в прошлом случае. Третий же означает шаг, с которым числа следуют друг за другом.</p>
39 for i in range(10, 20, 3): print(i) &gt;&gt;&gt; 10 &gt;&gt;&gt; 13 &gt;&gt;&gt; 16 &gt;&gt;&gt; 19<p>Если в теле цикла for выполняется всего одно действие, синтаксис Python позволяет сократить его запись до:</p>
39 for i in range(10, 20, 3): print(i) &gt;&gt;&gt; 10 &gt;&gt;&gt; 13 &gt;&gt;&gt; 16 &gt;&gt;&gt; 19<p>Если в теле цикла for выполняется всего одно действие, синтаксис Python позволяет сократить его запись до:</p>
40 i for i in iterable_object<p>Это синтаксический сахар, который не добавляет новой функциональности, но влияет на внешний вид кода. Так можно легко и быстро генерировать списки.</p>
40 i for i in iterable_object<p>Это синтаксический сахар, который не добавляет новой функциональности, но влияет на внешний вид кода. Так можно легко и быстро генерировать списки.</p>
41 num_list = [i for i in range(1, 11)] print(num_list) &gt;&gt;&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]<p>В такую конструкцию также можно добавить дополнительное условие. Сделаем генератор, который будет выводить только чётные числа. При этом не будем создавать переменную для получившегося списка, а сразу напечатаем его.</p>
41 num_list = [i for i in range(1, 11)] print(num_list) &gt;&gt;&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]<p>В такую конструкцию также можно добавить дополнительное условие. Сделаем генератор, который будет выводить только чётные числа. При этом не будем создавать переменную для получившегося списка, а сразу напечатаем его.</p>
42 print([i for i in range(1, 11) if i % 2 == 0]) &gt;&gt;&gt; [2, 4, 6, 8, 10]<p>Конструкция if i % 2 == 0 означает: "если при делении i на 2 остаток равен 0".</p>
42 print([i for i in range(1, 11) if i % 2 == 0]) &gt;&gt;&gt; [2, 4, 6, 8, 10]<p>Конструкция if i % 2 == 0 означает: "если при делении i на 2 остаток равен 0".</p>
43 <p>С самой переменной i тоже можно проводить операции. Используем предыдущий генератор, но теперь будем выводить не сами чётные числа, а их квадраты.</p>
43 <p>С самой переменной i тоже можно проводить операции. Используем предыдущий генератор, но теперь будем выводить не сами чётные числа, а их квадраты.</p>
44 print([i ** 2 for i in range(1, 11) if i % 2 == 0]) &gt;&gt;&gt; [4, 16, 36, 64, 100]<p>Главное при таком подходе - сильно не увлекаться. Если код тяжело прочесть и понять (например, когда к i применяется сразу несколько функций и методов и вдобавок задаётся сложное условие), то лучше разбить его на несколько строк. Понятность важнее лаконичности.</p>
44 print([i ** 2 for i in range(1, 11) if i % 2 == 0]) &gt;&gt;&gt; [4, 16, 36, 64, 100]<p>Главное при таком подходе - сильно не увлекаться. Если код тяжело прочесть и понять (например, когда к i применяется сразу несколько функций и методов и вдобавок задаётся сложное условие), то лучше разбить его на несколько строк. Понятность важнее лаконичности.</p>
45 <p>Бывают случаи, когда нужно завершить цикл принудительно, даже если его условие всё ещё выполняется. В таких случаях используют ключевое слово break.</p>
45 <p>Бывают случаи, когда нужно завершить цикл принудительно, даже если его условие всё ещё выполняется. В таких случаях используют ключевое слово break.</p>
46 <p>Возьмём строку Hi, loop! и будем выводить каждый её символ. Если встретим запятую, досрочно завершим цикл.</p>
46 <p>Возьмём строку Hi, loop! и будем выводить каждый её символ. Если встретим запятую, досрочно завершим цикл.</p>
47 string = 'Hi, loop!' for i in string: if i == ',': break print(i) &gt;&gt;&gt; H &gt;&gt;&gt; i<p>Если же в строке запятой не будет, то цикл пройдёт по каждому её символу - и только потом завершится.</p>
47 string = 'Hi, loop!' for i in string: if i == ',': break print(i) &gt;&gt;&gt; H &gt;&gt;&gt; i<p>Если же в строке запятой не будет, то цикл пройдёт по каждому её символу - и только потом завершится.</p>
48 string = 'Hi loop!' for i in string: if i == ',': break print(i) &gt;&gt;&gt; H &gt;&gt;&gt; i &gt;&gt;&gt; &gt;&gt;&gt; l &gt;&gt;&gt; o &gt;&gt;&gt; o &gt;&gt;&gt; p &gt;&gt;&gt; !<p>Иногда возникает необходимость принудительно начать следующий шаг цикла, пропустив часть строк в его теле. Для таких случаев существует ключевое слово continue.</p>
48 string = 'Hi loop!' for i in string: if i == ',': break print(i) &gt;&gt;&gt; H &gt;&gt;&gt; i &gt;&gt;&gt; &gt;&gt;&gt; l &gt;&gt;&gt; o &gt;&gt;&gt; o &gt;&gt;&gt; p &gt;&gt;&gt; !<p>Иногда возникает необходимость принудительно начать следующий шаг цикла, пропустив часть строк в его теле. Для таких случаев существует ключевое слово continue.</p>
49 <p>Возьмём числа от 1 до 10 включительно и выведем из них только те, которые не делятся ни на 2, ни на 3.</p>
49 <p>Возьмём числа от 1 до 10 включительно и выведем из них только те, которые не делятся ни на 2, ни на 3.</p>
50 for i in range(1, 10): if i%2 == 0 or i%3 == 0: continue print(i) &gt;&gt;&gt; 1 &gt;&gt;&gt; 5 &gt;&gt;&gt; 7<p>Как видим, если срабатывает условие if (то есть если число делится на 2 или на 3 без остатка), то оставшаяся часть тела не работает - и i не печатается.</p>
50 for i in range(1, 10): if i%2 == 0 or i%3 == 0: continue print(i) &gt;&gt;&gt; 1 &gt;&gt;&gt; 5 &gt;&gt;&gt; 7<p>Как видим, если срабатывает условие if (то есть если число делится на 2 или на 3 без остатка), то оставшаяся часть тела не работает - и i не печатается.</p>
51 <p>Обычно ключевое слово else употребляют в связке с if, но у него есть и другое применение. Его можно использовать вместе с while или for. В таком случае else-код выполнится после того, как пройдут все витки цикла.</p>
51 <p>Обычно ключевое слово else употребляют в связке с if, но у него есть и другое применение. Его можно использовать вместе с while или for. В таком случае else-код выполнится после того, как пройдут все витки цикла.</p>
52 <p>Если же цикл досрочно прервётся из-за break, то часть программы в else не выполнится.</p>
52 <p>Если же цикл досрочно прервётся из-за break, то часть программы в else не выполнится.</p>
53 <p>Вспомним наш код со строкой Hi, loop! и добавим к нему else.</p>
53 <p>Вспомним наш код со строкой Hi, loop! и добавим к нему else.</p>
54 string = 'Hi, loop!' for i in string: if i == ',': break print(i) else: print('Цикл завершился без break') &gt;&gt;&gt; H &gt;&gt;&gt; i<p>В строке была запятая, сработал break - не выполнилось else-условие. Теперь уберём из неё запятую и посмотрим, что получится.</p>
54 string = 'Hi, loop!' for i in string: if i == ',': break print(i) else: print('Цикл завершился без break') &gt;&gt;&gt; H &gt;&gt;&gt; i<p>В строке была запятая, сработал break - не выполнилось else-условие. Теперь уберём из неё запятую и посмотрим, что получится.</p>
55 string = 'Hi loop!' for i in string: if i == ',': break print(i) else: print('Цикл завершился без break') &gt;&gt;&gt; H &gt;&gt;&gt; i &gt;&gt;&gt; &gt;&gt;&gt; l &gt;&gt;&gt; o &gt;&gt;&gt; o &gt;&gt;&gt; p &gt;&gt;&gt; ! &gt;&gt;&gt; Цикл завершился без break<p>Цикл прошёл все свои итерации, завершился самостоятельно, и поэтому код в else выполнился. Он также будет работать, если цикл не совершил ни одного витка.</p>
55 string = 'Hi loop!' for i in string: if i == ',': break print(i) else: print('Цикл завершился без break') &gt;&gt;&gt; H &gt;&gt;&gt; i &gt;&gt;&gt; &gt;&gt;&gt; l &gt;&gt;&gt; o &gt;&gt;&gt; o &gt;&gt;&gt; p &gt;&gt;&gt; ! &gt;&gt;&gt; Цикл завершился без break<p>Цикл прошёл все свои итерации, завершился самостоятельно, и поэтому код в else выполнился. Он также будет работать, если цикл не совершил ни одного витка.</p>
56 while 1 == 0: print('Эта строка никогда не выполнится') else: print('Цикл завершился без break') &gt;&gt;&gt; Цикл завершился без break<p>Иногда использовать бесконечный цикл может быть хорошей идеей. Например, мы пишем игру: она должна работать до тех пор, пока игрок из неё не выйдет. В этом случае в условии выхода нужно будет прописать break.</p>
56 while 1 == 0: print('Эта строка никогда не выполнится') else: print('Цикл завершился без break') &gt;&gt;&gt; Цикл завершился без break<p>Иногда использовать бесконечный цикл может быть хорошей идеей. Например, мы пишем игру: она должна работать до тех пор, пока игрок из неё не выйдет. В этом случае в условии выхода нужно будет прописать break.</p>
57 <p>Чтобы цикл был бесконечным, его<strong>условие должно выполняться всегда</strong>. Это можно сделать разными способами.</p>
57 <p>Чтобы цикл был бесконечным, его<strong>условие должно выполняться всегда</strong>. Это можно сделать разными способами.</p>
58 # Способ №1 - "пока истинно" while True: pass # pass - оператор-заглушка, который ничего не делает<p>Если сделать while False, то цикл, наоборот, никогда не начнётся.</p>
58 # Способ №1 - "пока истинно" while True: pass # pass - оператор-заглушка, который ничего не делает<p>Если сделать while False, то цикл, наоборот, никогда не начнётся.</p>
59 # Способ №2 - "пока проверяемое значение - любое ненулевое число" while 1: pass while -4: pass while 2023: pass<p>Если сделать while 0, то цикл никогда не начнётся.</p>
59 # Способ №2 - "пока проверяемое значение - любое ненулевое число" while 1: pass while -4: pass while 2023: pass<p>Если сделать while 0, то цикл никогда не начнётся.</p>
60 # Способ №3 - "пока проверяемое значение - непустой элемент" while 'string': pass while [False, 'list', 0]: pass<p>Если после while поставить пустой элемент - например, строку str() или список list(), то цикл никогда не начнётся.</p>
60 # Способ №3 - "пока проверяемое значение - непустой элемент" while 'string': pass while [False, 'list', 0]: pass<p>Если после while поставить пустой элемент - например, строку str() или список list(), то цикл никогда не начнётся.</p>
61 # Способ №4 - корректное уравнение while 1 == 1: pass while 0 != 1: pass<p><strong>Альтернативный подход</strong> - поместить после while переменную, в которой лежит подходящее условие. Например:</p>
61 # Способ №4 - корректное уравнение while 1 == 1: pass while 0 != 1: pass<p><strong>Альтернативный подход</strong> - поместить после while переменную, в которой лежит подходящее условие. Например:</p>
62 - # Способ №1 condition = True while condition: pass # Способ №2 condition = 1 while condition: pass # Способ №3 condition = 'string' while condition: pass<p>В таких случая для выхода из цикла можно не использовать оператор break, а заменить значение в переменной condition на False, 0, None или любой пустой элемент. Цикл закончит последний виток и завершится, потому что условие больше не будет выполняться.</p>
62 + # Способ №1 condition = True while condition: pass # Способ №2 condition = 1 while condition: pass # Способ №3 condition = 'string' while condition: pass<p>В таких случаях для выхода из цикла можно не использовать оператор break, а заменить значение в переменной condition на False, 0, None или любой пустой элемент. Цикл закончит последний виток и завершится, потому что условие больше не будет выполняться.</p>
63 <p>Такой подход применяется, когда нужно завершить цикл из других мест программы: например, из функции или вложенного цикла. Ещё одно отличие: так как цикл завершается "естественно", без оператора break, в нём выполнится else-код (если он есть).</p>
63 <p>Такой подход применяется, когда нужно завершить цикл из других мест программы: например, из функции или вложенного цикла. Ещё одно отличие: так как цикл завершается "естественно", без оператора break, в нём выполнится else-код (если он есть).</p>
64 condition = True x = 0 while condition: print(x) x += 1 if x == 3: condition = False else: print('Цикл завершился без break') &gt;&gt;&gt; 0 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2 &gt;&gt;&gt; Цикл завершился без break<p>В некоторых языках программирования есть ещё один вид цикла -<strong>с постусловием</strong>. Он всегда проходит хотя бы один виток и только после этого проверяет, выполняется ли условие. Вот его схема:</p>
64 condition = True x = 0 while condition: print(x) x += 1 if x == 3: condition = False else: print('Цикл завершился без break') &gt;&gt;&gt; 0 &gt;&gt;&gt; 1 &gt;&gt;&gt; 2 &gt;&gt;&gt; Цикл завершился без break<p>В некоторых языках программирования есть ещё один вид цикла -<strong>с постусловием</strong>. Он всегда проходит хотя бы один виток и только после этого проверяет, выполняется ли условие. Вот его схема:</p>
65 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>В <a>Java</a>и <a>C++</a>такое достигается с помощью конструкции do while, но в Python её нет. Зато можно сделать аналог. Для этого нужно использовать бесконечный цикл, а внутри его тела прописать условие завершения.</p>
65 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>В <a>Java</a>и <a>C++</a>такое достигается с помощью конструкции do while, но в Python её нет. Зато можно сделать аналог. Для этого нужно использовать бесконечный цикл, а внутри его тела прописать условие завершения.</p>
66 x = 12 while True: x += 1 print(x) if x &gt; 5: break &gt;&gt;&gt; 13<p>Каким бы ни было значение x, такой цикл пройдёт хотя бы один виток. А это и есть постусловие.</p>
66 x = 12 while True: x += 1 print(x) if x &gt; 5: break &gt;&gt;&gt; 13<p>Каким бы ни было значение x, такой цикл пройдёт хотя бы один виток. А это и есть постусловие.</p>
67 <p>Циклы в Python можно вкладывать друг в друга - то есть в теле одного цикла вызывать другой. Логика программы при этом усложняется.</p>
67 <p>Циклы в Python можно вкладывать друг в друга - то есть в теле одного цикла вызывать другой. Логика программы при этом усложняется.</p>
68 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>Можно вкладывать друг в друга сколько угодно циклов. При этом для каждого нового уровня вложенности нужно увеличивать отступ. Выглядит это так:</p>
68 <em>Инфографика: Майя Мальгина для Skillbox Media</em><p>Можно вкладывать друг в друга сколько угодно циклов. При этом для каждого нового уровня вложенности нужно увеличивать отступ. Выглядит это так:</p>
69 while condition: pass while inner_condition: pass pass<p>Напишем программу, которая будет выводить номер итерации внешнего и внутреннего цикла.</p>
69 while condition: pass while inner_condition: pass pass<p>Напишем программу, которая будет выводить номер итерации внешнего и внутреннего цикла.</p>
70 for i in range(3): print(f'Итерация внешнего цикла: {i}') for j in range(2): print(f'Итерация внутреннего цикла: {j}') &gt;&gt;&gt; Итерация внешнего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1 &gt;&gt;&gt; Итерация внешнего цикла: 1 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1 &gt;&gt;&gt; Итерация внешнего цикла: 2 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1<ul><li><strong>Циклы</strong> - один из основных инструментов любого Python-разработчика. С их помощью всего за пару строчек кода можно совершить сразу<strong>множество повторяющихся действий</strong>.</li>
70 for i in range(3): print(f'Итерация внешнего цикла: {i}') for j in range(2): print(f'Итерация внутреннего цикла: {j}') &gt;&gt;&gt; Итерация внешнего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1 &gt;&gt;&gt; Итерация внешнего цикла: 1 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1 &gt;&gt;&gt; Итерация внешнего цикла: 2 &gt;&gt;&gt; Итерация внутреннего цикла: 0 &gt;&gt;&gt; Итерация внутреннего цикла: 1<ul><li><strong>Циклы</strong> - один из основных инструментов любого Python-разработчика. С их помощью всего за пару строчек кода можно совершить сразу<strong>множество повторяющихся действий</strong>.</li>
71 <li>Циклы состоят из <strong>условия</strong>и <strong>тела</strong>. Код в теле выполняется только до тех пор, пока соблюдено условие.</li>
71 <li>Циклы состоят из <strong>условия</strong>и <strong>тела</strong>. Код в теле выполняется только до тех пор, пока соблюдено условие.</li>
72 <li>В Python есть<strong>два вида циклов</strong>: while и for. В while условие задаётся явным образом. В for перебирается каждый элемент коллекции.</li>
72 <li>В Python есть<strong>два вида циклов</strong>: while и for. В while условие задаётся явным образом. В for перебирается каждый элемент коллекции.</li>
73 <li>К обоим видам можно применять разные<strong>операторы</strong>: break для прерывания, continue для пропуска части тела, else для совершения последнего действия перед выходом из цикла.</li>
73 <li>К обоим видам можно применять разные<strong>операторы</strong>: break для прерывания, continue для пропуска части тела, else для совершения последнего действия перед выходом из цикла.</li>
74 <li>Циклы можно<strong>делать бесконечными</strong>(тогда программа никогда не завершится или завершится только при выполнении определённого условия) и <strong>вкладывать друг в друга</strong>.</li>
74 <li>Циклы можно<strong>делать бесконечными</strong>(тогда программа никогда не завершится или завершится только при выполнении определённого условия) и <strong>вкладывать друг в друга</strong>.</li>
75 </ul><p>Python для всех</p>
75 </ul><p>Python для всех</p>
76 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
76 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
77 <p><a>Пройти бесплатно</a></p>
77 <p><a>Пройти бесплатно</a></p>
78 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
78 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>