Міні-курс «Python з нуля» · Урок 2

Як Python виконує код: інтерпретатор, REPL та IDLE

Комп’ютер розуміє лише машинні інструкції, а ми пишемо текст. Розбираємося, хто і коли перекладає одне в інше, чим компільовані мови відрізняються від інтерпретованих, де в цій картині Python — і як встановити його, перевірити й запустити першу програму.

Крок 2 з 4·Авторка: Марина Мальцева·8 хв читання
Як Python виконує код — урок 2 міні-курсу «Python з нуля»

Компілятор і інтерпретатор: два способи перекладу

Процесор виконує лише машинний код — числові інструкції, специфічні для його архітектури. Щоб текст програми став таким кодом, його треба перекласти. Є два принципові підходи.

КомпіляціяІнтерпретація
Коли перекладаєтьсяУся програма — до запускуПід час виконання, частинами
Що отримуємоОкремий виконуваний файл (у Windows — .exe)Виконуваного файлу немає: потрібна програма-інтерпретатор
ПомилкиБагато знаходить компілятор ще до запускуЧастина проявляється, лише коли виконання дійде до рядка
Приклади мовC, C++, Rust, GoPython, PHP, Ruby

Аналогія: компіляція — це письмовий переклад книжки, який видають окремим томом; інтерпретація — синхронний перекладач, що переказує промову речення за реченням. Перекладену книжку читають уже без перекладача, а промову без нього не зрозуміти.

Сьогодні межа розмита: більшість «інтерпретованих» мов усередині теж щось компілюють. Як це влаштовано в Python — у наступному розділі.

Що робить Python насправді

Python називають інтерпретованою мовою, і для практики це правильно: окремого .exe немає, код запускає інтерпретатор. Але стандартна реалізація — CPython, яку ви завантажуєте з python.org, — працює у два етапи:

  1. Компіляція в байткод. Інтерпретатор читає весь файл, перевіряє синтаксис і перекладає текст у байткод — компактні інструкції не для процесора, а для віртуальної машини Python.
  2. Виконання. Віртуальна машина виконує байткод інструкцію за інструкцією.

Байткод можна побачити — модуль dis розбирає вираз на інструкції:

>>> import dis
>>> dis.dis("c = a + b * 2")
  LOAD_NAME       0 (a)
  LOAD_NAME       1 (b)
  LOAD_SMALL_INT  2
  BINARY_OP       5 (*)
  BINARY_OP       0 (+)
  STORE_NAME      2 (c)

Видно навіть пріоритет операцій: множення виконується раніше за додавання. Точний вигляд виводу залежить від версії (вище — Python 3.14, скорочено).

З цієї схеми випливає практичний наслідок, який корисно знати з першого дня:

  • Синтаксичну помилку (SyntaxError, IndentationError) Python знаходить ще на етапі компіляції. Тому програма з такою помилкою в останньому рядку не виконає навіть першого.
  • Помилку виконання — ділення на нуль, корінь із від’ємного числа — Python виявляє лише тоді, коли доходить до цього рядка. Усе, що стояло вище, встигає виконатися.

Щоб не компілювати імпортовані модулі щоразу заново, Python зберігає їхній байткод у теці __pycache__ — у файлах із розширенням .pyc.

Встановлення: Python 3.12 або новіший

  • Завантажте інсталятор з офіційного сайту python.org/downloads. Беріть Python 3.12 або новішу версію; на момент написання актуальна гілка — 3.14.
  • Windows: у класичному інсталяторі в першому ж вікні поставте галочку Add python.exe to PATH. Без неї термінал не знайде команду python.
  • macOS: встановіть пакет із того самого сайту; у терміналі команда називається python3.
  • Linux: Python 3 зазвичай уже є — перевірте командою python3 --version. IDLE, якщо його немає, ставиться окремим пакетом (у Debian і Ubuntu — idle3).

Перевірка: відкрийте термінал (у Windows — PowerShell або «Командний рядок») і введіть:

python --version

У відповідь з’явиться номер версії, наприклад Python 3.14.4. Якщо у Windows замість цього відкривається Microsoft Store — спробуйте py --version (лаунчер Python для Windows) або вимкніть у налаштуваннях Windows «псевдоніми виконання» для python.exe.

Два дефіси, а не тире. Команда пишеться python --version — двома звичайними дефісами. Word і месенджери автоматично перетворюють їх на тире «–», і скопійована звідти команда не спрацює: Python сприйме «–version» як ім’я файлу, який треба запустити.

Інтерактивний режим: REPL

Якщо запустити python без аргументів, відкриється інтерактивний режим — REPL (Read–Eval–Print Loop: прочитати, обчислити, вивести, повторити). Запрошення >>> означає, що Python чекає на команду. Введіть вираз, натисніть Enter — і одразу побачите результат:

>>> 2 + 3 * 4
14
>>> 10 / 4
2.5
>>> 7 > 5
True
>>> "Мережеві" + " технології"
'Мережеві технології'

У REPL значення виразу друкується автоматично — print не потрібен. У програмі з файлу це не так: без print обчислене значення на екрані не з’явиться.

Коли команда займає кілька рядків (після if чи for), запрошення змінюється на ..., а порожній рядок завершує блок. Вийти з REPL можна командою exit() або клавішами Ctrl+Z, Enter у Windows (Ctrl+D у macOS і Linux).

«Дзен Python» і документація

Ідеологія мови схована прямо в інтерпретаторі. Введіть у REPL:

>>> import this

Python виведе «The Zen of Python» — 19 коротких принципів Тіма Пітерса. Кілька з них пояснюють, чому код на Python виглядає саме так: Beautiful is better than ugly (красиве краще за потворне), Simple is better than complex (просте краще за складне) і Readability counts (читабельність має значення).

Звідси ж обов’язкові відступи: мова змушує оформлювати код однаково, тож чужу програму читати майже так само легко, як свою.

Першоджерело з будь-якого питання — офіційна документація docs.python.org/3. Для початку корисні розділи Tutorial (підручник) і Library Reference (опис стандартних модулів, зокрема math).

Перша програма в IDLE

REPL зручний для експериментів, але все, що в ньому набрано, зникає після закриття. Програму зберігають у файл із розширенням .py, а найпростіше середовище для цього встановлюється разом із Python — IDLE.

  1. Запустіть IDLE (у Windows — пошук «IDLE» у меню «Пуск»). Відкриється вікно Python Shell — той самий REPL.
  2. Створіть файл: меню File → New File (Ctrl+N). Відкриється порожній редактор.
  3. Наберіть програму і збережіть: File → Save (Ctrl+S), наприклад як lab1.py.
  4. Запустіть: Run → Run Module або F5. Результат з’явиться у вікні Shell.
a = int(input("Enter num1 -> "))
b = int(input("Enter num2 -> "))

s = a + b
d = a - b
m = a * b
v = a / b
print(s, d, m, v, sep="; ")

Запуск із числами 7 і 2 дасть:

Enter num1 -> 7
Enter num2 -> 2
9; 5; 14; 3.5

Рядки виконуються зверху вниз — як у лінійному алгоритмі з першого уроку. Що саме робить кожен рядок (навіщо int(input(...)), звідки 3.5 і що таке sep), розбираємо в наступному уроці.

IDLE — не єдиний варіант. Той самий файл можна запустити з терміналу командою python lab1.py або відкрити у VS Code чи PyCharm. Для першої лабораторної IDLE цілком достатньо: у нього немає зайвих налаштувань.

Міні-курс Python з нуля

Усі матеріали курсу по порядку. Програма, завдання лабораторної та інформація про авторку — на головній сторінці курсу.

  1. Урок 1 · 9 хвАлгоритм і блок-схемиВластивості алгоритму, способи запису, базові блоки й три структури — лінійна, розгалужена, циклічна — з кодом Python.
  2. Урок 2 · 8 хв · ви тутЯк Python виконує кодКомпілятор проти інтерпретатора, байткод, встановлення Python 3.12+, REPL, «Дзен Python» і перша програма в IDLE.
  3. Урок 3 · 9 хвPython як калькуляторСім арифметичних операторів і пріоритети, модуль math, змінні, типи даних і перетворення введення.
  4. Практика · 10 хвЛабораторна робота №1 покроковоОбидва завдання на прикладах, переклад формул у Python, перевірка ОДЗ, чекліст звіту й контрольні запитання.

Перевір себе

Інтерпретована: окремий виконуваний файл не створюється, код виконує інтерпретатор. Усередині CPython спершу компілює текст у байткод, а потім віртуальна машина виконує його інструкцію за інструкцією.

Найчастіше під час встановлення у Windows не поставили галочку «Add python.exe to PATH». Спробуйте команду py –version або перевстановіть Python з цією галочкою.

REPL виконує команду одразу й сам друкує значення виразу, але нічого не зберігає. Програма у файлі .py запускається повторно й виводить лише те, що передано в print.

«Дзен Python» — 19 принципів, які описують філософію мови: простота, читабельність, явність.

Далі: Python як калькулятор

Оператори, модуль math і змінні — усе, що знадобиться для обчислень у лабораторній. Перейти до уроку 3

Сподобалось? Поділіться — це найкраща підтримка

Розбори кіберзагроз від SEOWORK

Одна практична стаття на тиждень — як не купитися на фішинг, захистити акаунти й дані. У подарунок одразу памʼятка у PDF.