2. (Л) Огляд інструментів програмування (Python, VS Code, онлайн інтерпретатори)¶
Зміст лекції¶
- Що потрібно для написання програм
- Встановлення Python
- Інтерактивний режим (REPL)
- Запуск програм із файлу
- Редактор коду та IDE
- Visual Studio Code
- Налагодження (debugging) у VS Code
- Neovim — альтернатива для терміналу
- Онлайн-інтерпретатори Python
- Що використовувати і коли
Що потрібно для написання програм¶
Мінімальний набір інструментів програміста складається з трьох частин:
graph LR
ED["Редактор коду<br/>VS Code"] --> FILE["Файл program.py"]
FILE --> PY["Інтерпретатор Python"]
PY --> OUT["Результат у терміналі"]
style ED fill:#339af0,stroke:#333,color:#fff
style PY fill:#ffd43b,stroke:#333,color:#000
style OUT fill:#51cf66,stroke:#333,color:#000
| Інструмент | Призначення |
|---|---|
| Інтерпретатор Python | Виконує вашу програму. Без нього код — просто текст |
| Редактор коду | Місце, де ви пишете програму: підсвічування синтаксису, автодоповнення, підказки |
| Термінал | Запуск програм, встановлення пакетів, робота з системою |
Файл із програмою на Python — це звичайний текстовий файл з розширенням .py. Його можна створити навіть у «Блокноті», просто працювати буде значно незручніше.
Встановлення Python¶
Linux¶
У більшості дистрибутивів Python 3 уже встановлений. Перевірте:
Якщо потрібно встановити (Debian / Ubuntu):
macOS¶
Системний Python може бути застарілим, тому встановлюють свіжу версію через Homebrew:
Альтернатива — завантажити інсталятор з python.org/downloads.
Перевірка встановлення¶
Виведення має бути приблизно таким:
python чи python3?
У багатьох системах команда python або відсутня, або вказує на давно застарілий Python 2. Завжди використовуйте python3 — тоді ви точно запускаєте третю версію.
Інтерактивний режим (REPL)¶
Запустіть Python без аргументів:
Ви потрапите в REPL (Read — Eval — Print — Loop): інтерпретатор читає рядок, обчислює його, друкує результат і чекає наступного.
Python 3.13.2 (main, Feb 5 2025, 08:05:21)
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 2
4
>>> 10 / 4
2.5
>>> name = "Alice"
>>> len(name)
5
>>> print("Hello,", name)
Hello, Alice
>>>
Вийти з REPL: команда exit() або комбінація Ctrl+D.
Для чого REPL
REPL — це «чернетка» програміста. Швидко перевірити, що робить незнайома функція, порахувати вираз, подивитися тип значення. Але повноцінні програми в REPL не пишуть: після виходу все написане зникає.
Запуск програм із файлу¶
Створіть файл hello.py:
Запустіть його з того каталогу, де він лежить:
Найпоширеніша помилка початківця
Це означає, що ви запускаєте команду не з того каталогу, де лежить файл. Перевірте поточний каталог командоюpwd, перегляньте його вміст командою ls і перейдіть куди треба за допомогою cd.
Мінімум команд терміналу¶
| Команда | Дія |
|---|---|
pwd |
Показати поточний каталог |
ls |
Перелічити файли в каталозі |
cd my_folder |
Перейти в каталог my_folder |
cd .. |
Піднятися на рівень вище |
mkdir my_folder |
Створити каталог |
python3 file.py |
Запустити програму |
Буферизація виводу print()¶
print() не пише текст на екран напряму. Він складає його в буфер — ділянку пам'яті, — а система виводить вміст буфера пізніше, коли той заповниться або надійде команда «скинути» (flush). Робиться це заради швидкості: одна операція запису на 8 кілобайт значно дешевша за тисячу дрібних.
Через це вивід іноді з'являється не тоді, коли ви його очікуєте.
Створіть файл buffering.py:
import time
# Each iteration prints a dot without a newline
for i in range(5):
print(".", end="")
time.sleep(1)
print()
print("done")
Запустіть:
Ви очікуєте, що крапки з'являтимуться щосекунди. Насправді екран п'ять секунд порожній, а потім усі крапки виводяться разом. Причина: у терміналі буфер скидається на кожному символі нового рядка, а end="" цей символ прибирає.
Як скинути буфер вручну¶
Параметр flush=True змушує print() вивести текст негайно:
Тепер крапки з'являються по одній щосекунди.
Той самий ефект для всієї програми дає ключ -u (unbuffered):
Редактор коду та IDE¶
Редактор коду — текстовий редактор із підтримкою мов програмування: підсвічування синтаксису, автодоповнення, пошук по проєкту.
IDE (Integrated Development Environment) — інтегроване середовище розробки: редактор плюс налагоджувач, система збірки, керування залежностями, інтеграція з git тощо.
| Інструмент | Тип | Особливості |
|---|---|---|
| VS Code | Редактор із розширеннями | Безкоштовний, легкий, розширення перетворюють його на IDE |
| PyCharm | IDE | Потужний, але важчий; Community-версія безкоштовна |
| Vim / Neovim | Текстовий Редактор | Дуже швидкий, високий поріг входу |
| Блокнот / gedit | Текстовий редактор | Працює, але без жодної допомоги програмісту |
У цьому курсі ми використовуємо VS Code — він безкоштовний, кросплатформний і його достатньо для всіх завдань семестру.
Visual Studio Code¶
Встановлення¶
Завантажте з code.visualstudio.com або встановіть із пакетного менеджера:
# Debian / Ubuntu (після додавання репозиторію Microsoft)
sudo apt install code
# Arch Linux (AUR)
yay -S visual-studio-code-bin
# macOS
brew install --cask visual-studio-code
Розширення Python¶
Одразу після встановлення відкрийте панель розширень (Ctrl+Shift+X) і встановіть розширення Python від Microsoft. Разом із ним встановиться Pylance.
Що дають ці розширення:
- підсвічування синтаксису та автодоповнення;
- підказки про помилки ще до запуску програми;
- кнопка запуску файлу;
- вбудований налагоджувач;
- автоформатування коду.
Вибір інтерпретатора¶
VS Code має знати, яким саме Python запускати ваш код. Натисніть Ctrl+Shift+P, введіть Python: Select Interpreter і виберіть встановлений Python 3.
Поточний інтерпретатор завжди видно в рядку стану внизу вікна.
Робочий процес¶
graph TD
A["Створити каталог проєкту"] --> B["Відкрити його у VS Code<br/>File → Open Folder"]
B --> C["Створити файл program.py"]
C --> D["Написати код"]
D --> E["Запустити: кнопка ▷ або Ctrl+F5"]
E --> F{"Працює правильно?"}
F -->|ні| D
F -->|так| G["Готово"]
style E fill:#339af0,stroke:#333,color:#fff
style F fill:#ffd43b,stroke:#333,color:#000
style G fill:#51cf66,stroke:#333,color:#000
Відкривайте каталог, а не окремий файл
File → Open Folder замість Open File. VS Code вважає відкритий каталог коренем проєкту: від нього рахуються відносні шляхи до файлів, там працює пошук по проєкту та термінал.
Корисні комбінації клавіш¶
| Комбінація | Дія |
|---|---|
Ctrl+S |
Зберегти файл |
Ctrl+F5 |
Запустити програму без налагодження |
F5 |
Запустити з налагодженням |
F9 |
Поставити / зняти точку зупинки |
Ctrl+` |
Відкрити / закрити вбудований термінал |
Ctrl+Shift+P |
Палітра команд (доступ до всіх дій) |
Ctrl+/ |
Закоментувати / розкоментувати рядок |
Ctrl+Space |
Викликати автодоповнення |
F2 |
Перейменувати змінну або функцію всюди в проєкті |
Shift+Alt+F |
Відформатувати документ |
Вбудований термінал¶
Ctrl+` відкриває термінал прямо у вікні редактора, причому в каталозі проєкту. Там можна запускати програми вручну:
Це те саме, що й окремий термінал, просто зручніше — не треба перемикатися між вікнами.
Налагодження (debugging) у VS Code¶
Налагоджувач (debugger) дозволяє зупинити програму в потрібному місці та подивитися, які значення насправді мають змінні. Це головний інструмент пошуку помилок — значно ефективніший за розстановку print() по всьому коду.
Точка зупинки (breakpoint) — позначка на рядку коду; дійшовши до неї, програма призупиняється.
Порядок роботи:
- Клацніть ліворуч від номера рядка (або натисніть
F9) — з'явиться червона крапка. - Запустіть налагодження клавішею
F5. - Програма зупиниться на цьому рядку. У панелі Variables зліва видно всі змінні та їхні поточні значення.
- Керуйте виконанням кнопками панелі налагодження.
| Клавіша | Дія |
|---|---|
F5 |
Continue — продовжити до наступної точки зупинки |
F10 |
Step Over — виконати рядок цілком |
F11 |
Step Into — зайти всередину функції |
Shift+F11 |
Step Out — вийти з поточної функції |
Shift+F5 |
Зупинити налагодження |
Спробуйте на цій програмі: поставте точку зупинки на рядку з if і подивіться значення a та b перед порівнянням.
# Program: find the largest of two numbers
a = int(input("a = "))
b = int(input("b = "))
if a > b:
biggest = a
else:
biggest = b
print("The largest number is", biggest)
Налагоджувач і алгоритм
Покрокове виконання показує реальний шлях програми через блок-схему: які гілки спрацювали, скільки разів виконався цикл. Це найкращий спосіб зрозуміти, чому програма робить не те, що ви очікували.
Neovim — альтернатива для терміналу¶
Neovim — це сучасна версія редактора Vim, який працює прямо в терміналі. Він швидкий, є майже на кожному сервері й повністю керується з клавіатури. Плата за це — вищий поріг входу: Neovim влаштований інакше, ніж звичні редактори.
Встановлення¶
# Debian / Ubuntu
sudo apt install neovim
# Fedora
sudo dnf install neovim
# Arch Linux
sudo pacman -S neovim
# macOS
brew install neovim
Перевірка та відкриття файлу:
Головна ідея: режими¶
Neovim — модальний редактор. Одна й та сама клавіша робить різні речі залежно від поточного режиму.
graph LR
N["NORMAL<br/>переміщення, команди"] -->|"i, a, o"| I["INSERT<br/>введення тексту"]
I -->|"Esc"| N
N -->|"v, V"| V["VISUAL<br/>виділення тексту"]
V -->|"Esc"| N
N -->|":"| C["COMMAND<br/>:w :q :help"]
C -->|"Enter або Esc"| N
style N fill:#339af0,stroke:#333,color:#fff
style I fill:#51cf66,stroke:#333,color:#000
style C fill:#ffd43b,stroke:#333,color:#000
| Режим | Для чого | Як увійти |
|---|---|---|
| NORMAL | Переміщення, видалення, копіювання. Стартовий режим | Esc |
| INSERT | Введення тексту, як у звичайному редакторі | i, a, o |
| VISUAL | Виділення фрагмента тексту | v, V, Ctrl+v |
| COMMAND | Команди редактора: зберегти, вийти, знайти | : |
Найперше правило новачка
Якщо ви заплуталися — натисніть Esc. Це завжди повертає вас у режим NORMAL, звідки працюють усі команди.
Вихід із редактора¶
Класична проблема новачка. Спочатку Esc, потім:
| Команда | Дія |
|---|---|
:w |
Зберегти файл |
:q |
Вийти (не спрацює, якщо є незбережені зміни) |
:wq або :x |
Зберегти та вийти |
:q! |
Вийти без збереження, відкинувши всі зміни |
:w new_name.py |
Зберегти під іншим ім'ям |
Переміщення¶
| Клавіші | Дія |
|---|---|
h j k l |
Вліво, вниз, вгору, вправо (стрілки теж працюють) |
w / b |
На слово вперед / назад |
0 / $ |
На початок / кінець рядка |
gg / G |
На початок / кінець файлу |
42G або :42 |
Перейти на рядок 42 |
Ctrl+d / Ctrl+u |
Пів екрана вниз / вгору |
{ / } |
На попередній / наступний порожній рядок (між блоками коду) |
% |
Стрибнути до парної дужки |
Введення тексту¶
| Клавіша | Дія |
|---|---|
i |
Вставляти перед курсором |
a |
Вставляти після курсора |
I |
На початок рядка та в режим вставки |
A |
У кінець рядка та в режим вставки |
o |
Створити новий рядок знизу й перейти в нього |
O |
Створити новий рядок зверху |
Esc |
Повернутися в NORMAL |
Видалення, копіювання, вставка¶
| Команда | Дія |
|---|---|
x |
Видалити символ під курсором |
dd |
Видалити (вирізати) рядок цілком |
3dd |
Видалити 3 рядки |
dw |
Видалити слово |
d$ |
Видалити до кінця рядка |
yy |
Скопіювати рядок |
p / P |
Вставити після / перед курсором |
u |
Скасувати останню дію (undo) |
Ctrl+r |
Повернути скасоване (redo) |
cc |
Стерти рядок і одразу перейти в режим вставки |
Команди складаються як речення
Синтаксис Vim — це дія + об'єкт: d (delete) + w (word) = dw, видалити слово. Додайте число попереду — і дія повториться: 3dw видалить три слова. Так само працюють y (copy) та c (change): y3j, ci" тощо. Вивчивши десяток «літер», ви отримуєте сотні комбінацій.
Пошук і заміна¶
| Команда | Дія |
|---|---|
/text |
Шукати text вперед; Enter — виконати |
?text |
Шукати назад |
n / N |
Наступний / попередній збіг |
* |
Знайти слово під курсором |
:%s/old/new/g |
Замінити old на new у всьому файлі |
:noh |
Прибрати підсвічування знайденого |
Робота з кількома файлами¶
| Команда | Дія |
|---|---|
:e file.py |
Відкрити інший файл |
:vsplit file.py |
Розділити вікно вертикально |
:split file.py |
Розділити горизонтально |
Ctrl+w + h/j/k/l |
Перейти в сусіднє вікно |
:Explore |
Вбудований файловий провідник |
Запуск Python із Neovim¶
Не виходячи з редактора:
% означає «поточний файл». Ще варіант — :terminal відкриває справжній термінал в окремому вікні редактора.
Мінімальна конфігурація¶
Neovim налаштовується файлом ~/.config/nvim/init.lua (його треба створити вручну):
vim.opt.number = true -- номери рядків
vim.opt.expandtab = true -- пробіли замість табуляції
vim.opt.shiftwidth = 4 -- відступ 4 пробіли
vim.opt.tabstop = 4 -- символ табуляції показувати як 4 пробіли
vim.opt.mouse = "a" -- підтримка миші
vim.opt.clipboard = "unnamedplus" -- спільний буфер обміну із системою:
-- скопійоване в Neovim можна вставити
-- в браузер і навпаки
vim.opt.ignorecase = true -- пошук без урахування регістру
Плагіни (опціонально)¶
Щоб отримати можливості рівня IDE, потрібен менеджер плагінів — найпоширеніший lazy.nvim. Найкорисніші плагіни для Python:
| Плагін | Що дає |
|---|---|
nvim-lspconfig + pyright |
Підказки про помилки, перехід до визначення |
| nvim-cmp | Автодоповнення коду |
| nvim-treesitter | Якісне підсвічування синтаксису |
| telescope.nvim | Швидкий пошук файлів і тексту по проєкту |
| nvim-dap | Налагоджувач із точками зупинки |
Вбудований тренажер
Виконайте в терміналі команду vimtutor — це інтерактивний підручник на 25–30 хвилин, який проводить через усі базові команди на практиці. Найшвидший спосіб освоїти Neovim.
Що вибрати для курсу
Neovim — потужний інструмент, але його вивчення потребує додаткових зусиль. Якщо ви не впевнені в своїх силах, або шукаєте простіший шлях — беріть VS Code. Neovim має сенс, якщо вам цікаво працювати в терміналі й ви готові тратити час на його вивчення і звикання.
Онлайн-інтерпретатори Python¶
Онлайн-інтерпретатор — це сайт, на якому можна написати й запустити код без встановлення чогось на комп'ютер. Код виконується на сервері, результат повертається у вікно браузера.
| Сервіс | Адреса | Особливості |
|---|---|---|
| Python Shell | python.org/shell | Офіційний REPL у браузері, без реєстрації |
| Python Tutor | pythontutor.com | Покрокова візуалізація виконання: змінні, пам'ять, виклики функцій |
| Programiz | programiz.com/python-programming/online-compiler | Простий редактор із підтримкою input() |
| Replit | replit.com | Повноцінне середовище з файлами; потрібна реєстрація |
| Google Colab | colab.research.google.com | Ноутбуки Jupyter, потрібен акаунт Google |
Python Tutor — окрема рекомендація¶
pythontutor.com виконує програму по кроках і малює стан пам'яті: які змінні існують, які значення в них лежать, на якому рядку зараз виконання.
Візьміть приклад із першої лекції та прогляньте його крок за кроком — ви буквально побачите, як працює цикл:
Це найкращий інструмент, щоб зрозуміти зв'язок «блок-схема → код → виконання».
Обмеження онлайн-сервісів¶
- немає доступу до файлової системи вашого комп'ютера — робота з файлами обмежена або неможлива;
- немає повноцінного налагоджувача з точками зупинки;
- сторонні бібліотеки або недоступні, або обмежені набором, який передбачив сервіс;
- обмеження на час виконання та обсяг пам'яті;
- код зберігається на чужому сервері, а вкладка легко закривається разом із роботою.
Практичні роботи виконуються локально
Онлайн-інтерпретатори — інструмент для швидкої перевірки ідеї або для роботи з чужого комп'ютера. Практичні роботи курсу виконуються локально: потрібні скріншоти запуску, робота з файлами та власна структура проєкту.
Що використовувати і коли¶
graph TD
Q{"Що потрібно зробити?"}
Q -->|"Перевірити один вираз"| R["REPL: python3"]
Q -->|"Написати програму,<br/>практичну роботу"| V["VS Code + python3 file.py"]
Q -->|"Зрозуміти, як<br/>виконується код"| P["Python Tutor"]
Q -->|"Немає доступу<br/>до свого комп'ютера"| O["Онлайн-інтерпретатор"]
style V fill:#51cf66,stroke:#333,color:#000
style P fill:#ffd43b,stroke:#333,color:#000
Основний інструмент курсу — VS Code з локально встановленим Python 3. Решта — допоміжні засоби.
Корисні посилання¶
- Завантажити Python
- Завантажити VS Code
- Python у VS Code — офіційна документація
- Налагодження Python у VS Code
- Neovim — офіційний сайт
- Neovim: документація для новачків (
:help nvim-quickstart) - Python Tutor — візуалізація виконання коду
- Офіційний Python Shell у браузері
Домашнє завдання¶
- Встановити Python 3 і переконатися, що
python3 --versionвиводить версію. - Встановити VS Code та розширення Python від Microsoft або Neovim, та вибрати інтерпретатор.
- Створити каталог
python-course, відкрити його у VS Code, створити файлhello.pyі запустити його. - У REPL обчислити кілька виразів:
17 // 5,17 % 5,2 ** 10. Пояснити результати. - Відкрити pythontutor.com, вставити програму обчислення суми від 1 до N та переглянути її покрокове виконання.
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub