Похожие презентации:
python_execution_blocks[1]
1.
Понятие «блока» выполнения вPython
Как отступы управляют логикой кода, структурой программы и областями
видимости
Презентация на 1 час доклада с примерами кода
2.
Что такое «блок» выполнения?Блок кода (Code Block) — это логически сгруппированная последовательность
инструкций, которая выполняется как единое целое.
Границы блоков определяют логику ветвления, циклов, функций и классов.
В большинстве языков программирования (C++, Java, JS) границы блоков
задаются символами фигурными скобками { }.
В Python границы блоков задаются исключительно отступами (indentation).
3.
Философия Python и Дзен«Красивое лучше безобразного» (Beautiful is better than ugly)
«Читаемость имеет значение» (Readability counts)
Принудительные отступы делают код всех разработчиков визуально
единообразным.
Отсутствие «синтаксического мусора» (лишних скобок и точек с запятой)
разгружает зрение.
Команда import this в интерактивной консоли выводит полный Дзен Python.
4.
Анатомия блока в Python: Основные правилаЛюбой блок начинается с составного оператора (заголовка), который
обязательно заканчивается двоеточием (:).
Все инструкции внутри одного блока должны иметь абсолютно одинаковый
уровень отступа.
Конец блока определяется возвратом к предыдущему (более внешнему)
уровню отступа.
Стандарт PEP 8: В качестве отступа строго рекомендуется использовать 4
пробела (не символы табуляции!).
5.
Условные операторы (if-elif-else)Создание альтернативных путей выполнения
программы.
Вложенные блоки внутри условий
формируют иерархию.
Сдвиг вправо создает блок, возврат влево —
закрывает текущую ветку логики.
x = 15
if x > 10:
# Начало блока 'if'
print('x больше 10')
if x % 2 == 0:
# Вложенный блок
print('x — четное')
else:
# Вложенный блок 'else'
print('x — нечетное')
else:
# Начало блока 'else'
print('x меньше или равен 10')
6.
Блоки в циклах (for и while)Тело цикла — это изолированный блок
выполнения, который повторяется n-раз.
Специфика Python: Блоки else для циклов
выполняются, если цикл завершился
штатно, без оператора break.
for i in range(3):
# Начало блока цикла
print(f'Итерация {i}')
current_sq = i ** 2
print(f'Квадрат: {current_sq}')
else:
# Блок else цикла
print('Цикл успешно завершен!')
7.
Блоки функций (def) и локальностьИнкапсуляция логики внутри именованного
блока.
Переменные, созданные внутри блока
функции, являются локальными и
уничтожаются при выходе из функции.
global_var = 'Я виден везде'
def my_function():
# Начало блока функции
local_var = 'Я только внутри'
print(global_var) # ОК
print(local_var)
# ОК
my_function()
# print(local_var)
# Ошибка NameError!
8.
Области видимости: LEGB-правилоПорядок поиска переменных жестко привязан к блокам выполнения:
Local — внутри текущего блока функции
Enclosing — внутри объемлющих функций (для вложенных структур)
Global — на уровне текущего модуля (файла)
Built-in — встроенные имена и функции языка Python
Интерпретатор поднимается из внутренних блоков во внешние, но никогда не
заглядывает в чужие изолированные блоки.
9.
Блоки обработки исключенийСложная структура блоков (до 4-х уровней
логики):
- try: Опасный код, который может упасть.
- except: Перехват и обработка ошибок.
- else: Выполняется, только если в try не
возникло исключений.
- finally: Выполняется гарантированно в
любом случае (очистка ресурсов).
try:
# Блок try
result = 10 / 2
except ZeroDivisionError:
# Блок перехвата
print('Деление на ноль!')
else:
# Блок при успехе
print(f'Результат: {result}')
finally:
# Блок очистки
print('Выполняется всегда.')
10.
Контекстные менеджеры (with)Специальный блок для безопасного
управления внешними ресурсами (файлы,
базы данных).
# Блок контекстного менеджера
with open('file.txt', 'w') as f:
f.write('Привет из блока!')
# Файл открыт в этом блоке
Автоматически освобождает ресурсы при
выходе из блока, даже если внутри
произошел сбой.
# Возврат уровня отступа:
# Файл гарантированно закрыт.
print('Файл сохранен.')
Инкапсулирует вызовы методов __enter__ и
__exit__.
11.
Распространенные ошибки отступовIndentationError: expected an indented block —
пропущен отступ после двоеточия.
def wrong_function():
print('Ошибка! Нет отступа')
IndentationError: unexpected indent — лишний
или случайный отступ в коде.
if True:
print('Тут пробелы')
print('А тут таб!') # TabError
TabError: inconsistent use of tabs and spaces
— смешивание Табов и Пробелов в одном
блоке.
12.
Пустые блоки и оператор passВ Python нельзя создать пустой блок
выполнения — синтаксис требует наличия
инструкций после двоеточия.
Решение: Использование операторазаглушки pass или строки документации
(docstring).
Применяется при проектировании
архитектуры программ сверху вниз.
def function_later():
# Заглушка, чтобы не было ошибки
pass
class MyEmptyClass:
'''Этот класс пока пуст'''
pass
13.
Заключение и Best PracticesОтступы в Python — это синтаксический инструмент обеспечения высокой
читаемости кода.
Строго следуйте правилам стандарта PEP 8 (4 пробела на один уровень).
Избегайте слишком глубокой вложенности блоков (более 3–4 уровней).
Рефакторите сложный код на отдельные функции.
Настраивайте IDE (PyCharm, VS Code) на автоматическую замену Табуляции
на Пробелы.
14.
Вопросы и ответы (Q&A)Спасибо за внимание!
Буду рад ответить на ваши вопросы.
Материалы и примеры кода доступны для тестирования.
Программирование