PageSourceSearch

https://devappslearn.com/_next/static/chunks/3414.b440cb4401454a38.js

js devappslearn.com collected 2026-10-09 22:57:17 UTC 16,820 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3414],{3414:e=>{e.exports=JSON.parse('{"title":"Control Flow Structures","translatedTitle":"Управляющие конструкции","lessons":[{"slug":"conditional-execution","title":"3.1 Условное выполнение: if, elif, else","description":"Способность принимать решения — это суть интеллекта, как человеческого, так и искусственного. В программировании эта способность реализуется через условное выполнение.","course":"python","content":[{"type":"h3","text":"3.1.1 Теория"},{"type":"p","text":"<strong>Оператор `if`:</strong> \uD83C\uDFDB️<br>Оператор <code>if</code> — самая фундаментальная структура принятия решений. Его синтаксис элегантен и ясен: <code>if &lt;условие&gt;:</code>, за которым следует блок кода с отступом. <code>&lt;условие&gt;</code> может быть любым выражением Python, которое вычисляется в булево значение. Интерпретатор проверяет условие:<ul><li>Если условие вычисляется как <code>True</code> (или любое \'истинное\' значение), выполняется следующий блок кода.</li><li>Если условие вычисляется как <code>False</code> (или любое \'ложное\' значение), блок кода полностью пропускается, и выполнение продолжается с первого оператора после блока <code>if</code>.</li></ul>"},{"type":"p","text":"<strong>Оператор `else`:</strong> ⚖️<br>Оператор <code>else</code> предоставляет альтернативный путь выполнения. Он всегда работает в сочетании с предыдущим оператором <code>if</code> и не принимает собственного условия. Блок кода <code>else</code> выполняется <strong>только если</strong> условие <code>if</code> равно <code>False</code>. Это создает бинарное дерево решений: произойдет либо одно, либо другое."},{"type":"p","text":"<strong>Оператор `elif` (Else if):</strong> \uD83E\uDE9C<br>Когда у нас есть несколько взаимоисключающих условий, использование нескольких операторов <code>if</code> может быть неэффективным или логически неверным. Оператор <code>elif</code> (сокращение от \'else if\') позволяет нам создать чистую цепочку решений. Python оценивает условия по порядку:<ul><li>Он проверяет <code>if</code>. Если это <code>True</code>, он выполняет свой блок и игнорирует остальную часть цепочки (<code>elif</code> и <code>else</code>).</li><li>Если <code>if</code> равно <code>False</code>, он переходит к первому <code>elif</code>. Если его условие <code>True</code>, он выполняет свой блок и игнорирует остальное.</li><li>Этот процесс повторяется для каждого <code>elif</code>.</li><li>Если ни одно из предыдущих условий не является <code>True</code>, выполняется необязательный блок <code>else</code> в конце.</li></ul>"},{"type":"p","text":"<strong>Тернарный оператор:</strong><br>Для простых присваиваний <code>if-else</code> Python предлагает более краткий, однострочный синтаксис: <code>значение_если_true if условие else значение_если_false</code>"},{"type":"h3","text":"3.1.2 Примеры"},{"type":"code","code":"# -- Простой if --\\ntemperature = 31\\nif temperature > 30:\\n    print(\\"Внимание: высокая температура. Рекомендуется пить больше воды.\\")\\nprint(\\"Проверка температуры завершена.\\")\\n\\n# -- Структура if-else --\\nuser_age = 17\\nif user_age >= 18:\\n    print(\\"Вы совершеннолетний. Доступ разрешен.\\")\\nelse:\\n    print(\\"Вы несовершеннолетний. Доступ запрещен.\\")\\n\\n# -- Полная цепочка if-elif-else (оценка) --\\nscore = 85\\ngrade = \'\'\\nif score >= 90:\\n    grade = \'A\'\\nelif score >= 80:\\n    grade = \'B\'\\nelif score >= 70:\\n    grade = \'C\'\\nelif score >= 60:\\n    grade = \'D\'\\nelse:\\n    grade = \'F\'\\nprint(f\\"С оценкой {score}, ваша оценка: {grade}\\")\\n\\n# -- Вложенные условия --\\nis_logged_in = True\\nuser_role = \\"admin\\"\\nif is_logged_in:\\n    print(\\"Добро пожаловать!\\")\\n    if user_role == \\"admin\\":\\n        print(\\"У вас есть доступ к панели администратора.\\")\\n    else:\\n        print(\\"У вас есть основные права пользователя.\\")\\nelse:\\n    print(\\"Пожалуйста, войдите в систему.\\")\\n\\n# -- Тернарный оператор --\\nage = 22\\nstatus = \\"Взрослый\\" if age >= 18 else \\"Несовершеннолетний\\"\\nprint(f\\"Статус: {status}\\")"}]},{"slug":"definite-iteration-for-loops","title":"3.2 Определенная итерация: циклы `for`","description":"Циклы `for` — это наш инструмент для определенной итерации. Мы используем их, когда хотим выполнить блок кода для каждого элемента в предопределенной последовательности.","course":"python","content":[{"type":"h3","text":"3.2.1 Теория"},{"type":"p","text":"<strong>Концепция итерируемого объекта:</strong> \uD83D\uDD04<br>Цикл <code>for</code> в Python — это не просто счетчик. Он предназначен для работы с любым итерируемым объектом. Итерируемый объект — это любой объект, который может возвращать свои элементы один за другим. Наиболее распространенными итерируемыми объектами, с которыми мы сталкивались, являются строки (str) и последовательности, генерируемые функцией <code>range()</code>. Позже мы увидим, что более сложные структуры, такие как списки и словари, также явÐ
1»ÑÑŽÑ‚ся итерируемыми."},{"type":"p","text":"<strong>Функция `range()`:</strong><br>Эта функция является наиболее распространенным способом создания цикла, который выполняется определенное количество раз. Она генерирует последовательность целых чисел, но не хранит их все в памяти, что делает ее чрезвычайно эффективной.<ul><li><code>range(stop)</code>: Генерирует числа от 0 до stop-1.</li><li><code>range(start, stop)</code>: Генерирует числа от start до stop-1.</li><li><code>range(start, stop, step)</code>: Генерирует числа от start до stop-1 с шагом.</li></ul>"},{"type":"p","text":"<strong>Необязательный блок `else`:</strong><br>Циклы <code>for</code> в Python имеют менее известную, но полезную функцию: необязательный блок <code>else</code>. Этот блок выполняется только в том случае, если цикл завершает все свои итерации нормально, не будучи прерванным оператором <code>break</code>. Это полезно в алгоритмах поиска."},{"type":"h3","text":"3.2.2 Примеры"},{"type":"code","code":"# -- Обход списка --\\nstudents = [\\"Анна\\", \\"Николай\\", \\"Мария\\", \\"Константин\\"]\\nfor student in students:\\n    print(f\\"Доброе утро, {student}!\\")\\n\\n# -- Использование range() --\\nprint(\\"\\\\nrange(5):\\")\\nfor i in range(5):\\n    print(i, end=\' \')\\n\\nprint(\\"\\\\n\\\\nrange(5, 10):\\")\\nfor i in range(5, 10):\\n    print(i, end=\' \')\\n\\nprint(\\"\\\\n\\\\nrange(10, 21, 2):\\")\\nfor i in range(10, 21, 2):\\n    print(i, end=\' \')\\n\\nprint(\\"\\\\n\\\\nrange(5, 0, -1):\\")\\nfor i in range(5, 0, -1):\\n    print(i, end=\' \')\\nprint(\\"\\\\nПуск!\\")\\n\\n# -- Вложенные циклы (таблица умножения) --\\nprint(\\"\\\\nТаблица умножения:\\")\\nfor i in range(1, 6):\\n    for j in range(1, 6):\\n        print(f\\"{i}*{j} = {i*j:<5}\\", end=\'\')\\n    print()\\n\\n# -- Цикл for-else (поиск) --\\nnumbers = [1, 3, 5, 7, 9, 11]\\nsearch_for = 8\\nfor num in numbers:\\n    if num == search_for:\\n        print(f\\"Число {search_for} найдено!\\")\\n        break\\nelse:\\n    print(f\\"Число {search_for} НЕ найдено в списке.\\")"}]},{"slug":"indefinite-iteration-while-loops","title":"3.3 Неопределенная итерация: циклы `while`","description":"В отличие от циклов `for`, циклы `while` используются для неопределенной итерации. Они не итерируют по предопределенной последовательности, а работают до тех пор, пока условие остается истинным.","course":"python","content":[{"type":"h3","text":"3.3.1 Теория"},{"type":"p","text":"<strong>Структура `while`:</strong> ♾️<br>Синтаксис: <code>while &lt;условие&gt;:</code>, за которым следует блок с отступом. Поток выполнения следующий:<ul><li>Оценить <code>&lt;условие&gt;</code>.</li><li>Если оно <code>True</code>, выполнить блок кода. После выполнения вернуться к шагу 1.</li><li>Если оно <code>False</code>, пропустить блок и завершить цикл.</li></ul>"},{"type":"p","text":"<strong>Опасность бесконечных циклов:</strong><br>Цикл <code>while</code> мощен, но и опасен. Если его условие начинается как <code>True</code> и ничто в теле цикла никогда не меняет его Ð
1½Ð° <code>False</code>, цикл будет выполняться вечно, \xabзамораживая\xbb программу. Исключительная ответственность программиста — обеспечить, чтобы условие цикла в конечном итоге стало ложным."},{"type":"p","text":"<strong>Когда выбирать `for` или `while`?</strong><br><ul><li>Используйте <code>for</code>: когда вы заранее знаете количество итераций или когда хотите обойти каждый элемент итерируемого объекта (например, \xabДля каждого ученика в классе...\xbb, \xabДля каждого числа от 1 до 10...\xbb).</li><li>Используйте <code>while</code>: когда итерация зависит от динамического условия, которое изменяется во время выполнения (например, \xabПока пользователь не угадал число...\xbb, \xabПока соединение с сервером активно...\xbb).</li></ul>"},{"type":"h3","text":"3.3.2 Примеры"},{"type":"code","code":"# -- Простой счетчик с while --\\ncount = 1\\nwhile count <= 5:\\n    print(f\\"Итерация номер {count}\\")\\n    count += 1\\nprint(\\"Конец цикла while.\\")\\n\\n# -- Игра в угадайку --\\nimport random\\nsecret_number = random.randint(1, 10)\\nguess = 0\\nprint(f\\"\\\\nПоздравляем! Вы нашли число (например, {secret_number}).\\")"}]},{"slug":"loop-control-statements","title":"3.4 Управление циклом: break, continue, pass","description":"Эти операторы дают нам более тонкий контроль над потоком выполнения внутри тела цикла.","course":"python","content":[{"type":"h3","text":"3.4.1 Теория"},{"type":"p","text":"<strong>Оператор `break`:</strong> \uD83D\uDED1<br>Оператор <code>break</code> вызывает немедленное завершение самого внутреннего цикла (<code>for</code> или <code>while</code>), в котором он находится. Выполнение программы продолжается с первого оператора сразу после окончания цикла. Это \xabаварийный выход\xbb из цикла."},{"type":"p","text":"<strong>Оператор `continue`:</strong> ⏭️<br>Оператор <code>continue</code> завершает текущую итерацию и вызывает немедленный переход к следующей итерации цикла. Код, который следует за <code>continue</code> в блоке цикла, не выполняется для этой конкретной итерации. Это как нажать \xabпропустить\xbb для песни в плейлисте."},{"type":"p","text":"<strong>Оператор `pass`:</strong> \uD83D\uDE11<br>Оператор <code>pass</code> — это пустая операция. Он абсолютно ничего не делает. Его единственная цель — синтаксическая. Он используется в тех местах, где грамматика Python требует блока кода (например, после <code>if</code>, <code>def</code> или <code>class</code>), но мы логически не хотим, чтобы выполнялось какое-либо действие. Он действует как временный заполнитель для кода, который мы напишем в будущем."},{"type":"h3","text":"3.4.2 Примеры"},{"type":"code","code":"# -- Использование break для поиска первого четного числа --\\nnumbers = [1, 3, 5, 7, 8, 9, 11]\\nfound_even = 
1None\\nfor num in numbers:\\n    if num % 2 == 0:\\n        found_even = num\\n        print(f\\"Найдено первое четное число: {found_even}\\")\\n        break\\nprint(\\"Поиск завершен.\\")\\n\\n# -- Использование continue для пропуска отрицательных чисел --\\ndata = [10, 20, -5, 30, -15, 40]\\ntotal = 0\\nfor value in data:\\n    if value < 0:\\n        print(f\\"Пропускаем отрицательное значение: {value}\\")\\n        continue\\n    total += value\\nprint(f\\"Сумма положительных чисел: {total}\\")\\n\\n# -- Использование pass в качестве заполнителя --\\nuser_permissions = \\"guest\\"\\n\\nif user_permissions == \\"admin\\":\\n    # TODO: Написать код для действий администратора\\n    pass\\nelif user_permissions == \\"editor\\":\\n    # TODO: Написать код для редактора\\n    pass\\nelse:\\n    print(\\"Базовый гостевой доступ.\\")\\n\\nprint(\\"Программа продолжается...\\")"}]}]}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.