Глава 1 · А вы знали?

Что такое программирование?

Прежде чем писать код, полезно понять, что вообще происходит, когда компьютер «выполняет программу» — и почему для первого языка мы выбрали именно Python.

После этой главы вы сможете: различать программу, исходный код, алгоритм, инструкцию и выражение; объяснить роль байт-кода в CPython; расположить основные этапы истории Python; различать python.org, документацию, PyPI, PSF и PEP; назвать области применения и границы Python; запустить print(...) и прочитать сообщение об ошибке.

Что такое программирование?

Компьютер невероятно быстрый, но абсолютно несамостоятельный. Сам по себе он не умеет вообще ничего — ни открыть игру, ни показать фотографию, ни посчитать сдачу в магазине. Всё, что делает компьютер, он делает потому, что кто-то заранее написал для него точную последовательность команд. Эта последовательность и называется программой, а процесс её написания — программированием.

Текст программы называется исходным кодом (source code). Процессор не выполняет его напрямую: используемый в книге CPython подготавливает код и выполняет его. На первом уровне будем называть этот процесс работой интерпретатора; точная схема с байт-кодом приведена ниже.

Идеячеловек хочет что-тосделатьPython-кодточная запись идеиИнтерпретаторпереводит код вдействияКомпьютервыполняет действия
От идеи до результата: путь программы
Что происходит
Когда вы нажимаете «Выполнить», происходит эта упрощённая цепочка: ваш текст → реализация Python → наблюдаемый результат (например, вывод текста на экран). Ниже мы уточним внутренний этап CPython с байт-кодом.

Алгоритм, инструкция, выражение

Несколько слов, которые будут встречаться в каждой главе этой книги — полезно один раз договориться, что они означают:

Интерпретатор и компилятор

Уровень 1 (достаточно для начала). Реализация Python принимает исходный код и организует его выполнение согласно правилам управления потоком. Её обычно называют интерпретатором. Это намеренно упрощённая модель.

Для сравнения: у некоторых языков (например, C или Rust) есть отдельный шаг — компилятор заранее переводит весь исходный код целиком в машинный код, и только потом готовую программу запускают. При обычном запуске CPython пользователь не собирает заранее машинный файл, поэтому Python называют интерпретируемым. Это описание способа запуска, а не утверждение, что компиляции нет.

Распространённая неточность
Говорить «Python вообще никогда не компилируется» — не совсем точно. На самом деле происходит немного больше — см. уровень 2 ниже. Для начала уровня 1 полностью достаточно, чтобы писать и понимать код.

Уровень 2 (если интересно, что происходит на самом деле). Официальная («эталонная») реализация Python, CPython, на самом деле сначала незаметно компилирует ваш исходный код в промежуточную форму — байт-код (компактные инструкции, непонятные человеку, но быстрые для выполнения), а затем выполняет этот байт-код с помощью Python VM (виртуальной машины). Всё это происходит автоматически и незаметно для вас — просто теперь вы знаете, что «интерпретируемый» не значит «без единого шага компиляции».

Исходный код.py файл, текстБайт-кодкомпактные инструкциидля VMPython VMвыполняет байт-код
Уровень 2: что на самом деле делает CPython внутри

Подробнее об устройстве CPython — в разделе «Сообщество и философия Python» этой же главы.

Почему вашим детям стоит научиться программировать?

Программирование — не заявка на профессию «программист», а способ мышления, который пригождается в любой области. Это касается и взрослых, которые садятся за первую программу сами. Три причины, почему этому стоит учиться в любом возрасте:

Почему Python?

Языков программирования — сотни. Python выбран для первого языка по трём практическим причинам: