Уяви: на столі лежить тисяча аркушів з перехопленими повідомленнями. Треба знайти всі згадки координат, часу виходу на зв'язок, позивних. Вручну — це дні роботи. Python зробить те саме за секунди.
Python — це мова програмування. Але тобі не потрібно ставати програмістом. Треба навчитися трьом речам:
Запускати готові скрипти (скрипт — це файл з командами для комп'ютера)
Розуміти, що скрипт робить
Просити AI написати або змінити скрипт під твою задачу
Це як із радіостанцією: не обов'язково знати, як працює кожен транзистор. Достатньо вміти налаштувати частоту, увімкнути і прийняти повідомлення.
Що зможеш після цього уроку
Встановити Python на свій комп'ютер
Запустити скрипт і побачити результат
Зрозуміти повідомлення про помилки
Виконати першу практичну задачу: знайти в тексті всі рядки з певним словом
Терміни, які зустрінуться
Python
Мова програмування. Читається "пайтон". Назва від Monty Python, не від змії.
Скрипт
Файл з командами. Як бойове завдання для комп'ютера: виконує по порядку, що написано.
Термінал
Вікно для текстових команд. В Windows називається "Командний рядок" або PowerShell.
Змінна
Коробка з підписом, куди кладемо дані. Наприклад, змінна 'позивний' може містити текст "Сокіл-1".
Рядок
Один рядок тексту у файлі. Або тип даних — текст у лапках.
Встановлення Python
Windows
Відкрий браузер і перейди на python.org/downloads
Натисни жовту кнопку "Download Python 3.12" (або новішу версію)
Запусти завантажений файл
У вікні встановлення ОБОВ'ЯЗКОВО постав галочку "Add Python to PATH" внизу
Натисни "Install Now"
Дочекайся завершення (1-2 хвилини)
⚠ УВАГА: Галочка "Add Python to PATH" — критично важлива. PATH — це список місць, де система шукає програми. Без цієї галочки система не знайде Python, і доведеться перевстановлювати. Якщо пропустив — видали Python через "Програми та засоби" і встанови заново.
Linux (Ubuntu/Debian)
Python зазвичай вже встановлений. Перевір версію — відкрий термінал і введи:
python3 --version
Якщо бачиш "Python 3.10" або вище — все готово. Якщо ні:
Якщо бачиш "Python 3.10.х" або вище — встановлення успішне.
✓ Що означає відповідь: система знайшла Python і показує його версію. 3.10, 3.11, 3.12 — все підходить. Якщо бачиш 2.7 — це стара версія, потрібна 3.х.
Редактор коду
Скрипти — це текстові файли. Можна писати в Блокноті, але незручно: немає підсвічування синтаксису (різні частини коду різними кольорами) і підказок про помилки. Використовуй VS Code — безкоштовний редактор від Microsoft.
Усі файли з кодом і дані для аналізу зберігай у цій папці.
Перша задача: пошук у тексті
Ситуація
Є файл з перехопленими повідомленнями. Потрібно швидко знайти всі рядки, де згадується слово "позиція" (у будь-якій формі: позиція, позиції, позицію). Вручну — гортати сотні рядків. Скриптом — секунди.
Вхідні дані
Створи файл messages.txt у папці C:\osint (або ~/osint на Linux). Відкрий його в VS Code і вставити цей текст:
[2025-01-15 08:23] Група на позиції 48.4567, 35.0234
[2025-01-15 08:45] Переміщення до точки збору
[2025-01-15 09:12] Звичайний текст без координат
[2025-01-15 09:30] Нова позиція підтверджена
[2025-01-15 10:15] Зв'язок встановлено
[2025-01-15 10:45] Група залишила позицію
[2025-01-15 11:00] Рух у напрямку позиції спостереження
[2025-01-15 11:30] Отримано підтвердження
Збережи файл: Ctrl+S.
Скрипт
Створи новий файл search.py у тій самій папці. Скопіюй цей код:
# Скрипт для пошуку рядків із ключовим словом
# Файл: search.py
# -------- НАЛАШТУВАННЯ --------
# Яке слово шукаємо (можна змінити на будь-яке)
keyword = "позиці"
# Який файл читаємо
filename = "messages.txt"
# ------------------------------
# Лічильник знайдених рядків
count = 0
# Відкриваємо файл для читання
# encoding="utf-8" — щоб коректно читати українські літери
with open(filename, "r", encoding="utf-8") as file:
# Читаємо файл рядок за рядком
for line in file:
# Перевіряємо: чи є ключове слово в рядку?
# .lower() переводить у нижній регістр
# Це потрібно, щоб знайти і "Позиція", і "позиція", і "ПОЗИЦІЯ"
if keyword.lower() in line.lower():
# Якщо знайшли — збільшуємо лічильник
count = count + 1
# Виводимо знайдений рядок
# .strip() прибирає зайві пробіли та переноси на початку і в кінці
print(f"[{count}] {line.strip()}")
# Виводимо підсумок
print(f"\nУсього знайдено рядків: {count}")
Як запустити
Відкрий термінал (Win+R → cmd → Enter)
Перейди в робочу папку:
cd C:\osint
На Linux:
cd ~/osint
Запусти скрипт:
python search.py
На Linux може бути:
python3 search.py
Очікуваний результат
[1] [2025-01-15 08:23] Група на позиції 48.4567, 35.0234
[2] [2025-01-15 09:30] Нова позиція підтверджена
[3] [2025-01-15 10:45] Група залишила позицію
[4] [2025-01-15 11:00] Рух у напрямку позиції спостереження
Усього знайдено рядків: 4
✓ Якщо бачиш такий результат — все працює. Скрипт знайшов 4 рядки, де є "позиці" (частина слів "позиції", "позиція", "позицію").
Як працює цей код
Розберемо кожну частину. Не треба запам'ятовувати — треба розуміти логіку.
Код
Що робить
keyword = "позиці"
Створюємо змінну keyword і кладемо в неї текст. Лапки означають, що це саме текст, а не команда.
count = 0
Створюємо лічильник. Починаємо з нуля, бо ще нічого не знайшли.
with open(...) as file:
Відкриваємо файл. with гарантує, що файл закриється після роботи (як закрити двері за собою).
for line in file:
Цикл: бери рядки по черзі. line — змінна, куди потрапляє поточний рядок.
if ... in ...:
Умова: якщо одне міститься в іншому. Як питання "чи є слово в реченні?"
.lower()
Переводить текст у нижній регістр. "Позиція" стає "позиція". Потрібно для пошуку незалежно від регістру.
count = count + 1
Збільшуємо лічильник на 1. Можна писати коротше: count += 1
print(f"...")
Виводить текст на екран. f перед лапками дозволяє вставляти змінні через {}.
.strip()
Прибирає пробіли та переноси рядка з країв тексту.
Ключова ідея: відступи
У Python відступи (пробіли на початку рядка) — це не оформлення, а частина синтаксису. Вони показують, що до чого належить:
for line in file: # Початок циклу
if keyword in line: # Це всередині циклу (4 пробіли)
count = count + 1 # Це всередині if (8 пробілів)
print(line) # Теж всередині if
print("Кінець") # Це вже після циклу (без відступу)
Як у військовій структурі: все, що з відступом — підпорядковане тому, що вище без відступу.
Якщо щось пішло не так
Помилки — це нормально. Python намагається пояснити, що не так. Ось найчастіші:
Помилка
Що робити
FileNotFoundError: No such file or directory: 'messages.txt'
Файл не знайдено. Перевір: 1) ти в правильній папці (cd C:\osint), 2) файл називається саме messages.txt, 3) файл збережено.
SyntaxError: invalid syntax
Помилка в написанні коду. Перевір лапки (кожна відкрита має бути закрита), двокрапки після if/for/with, дужки.
IndentationError: expected an indented block
Проблема з відступами. Після рядка з двокрапкою наступний рядок має бути з відступом (4 пробіли).
'python' is not recognized
Система не знаходить Python. Скоріш за все, не поставив галочку 'Add to PATH'. Перевстанови Python.
UnicodeDecodeError
Проблема з кодуванням. Відкрий messages.txt у VS Code, внизу праворуч натисни на кодування, вибери 'Save with Encoding' → UTF-8.
Робота з AI
AI (Claude, ChatGPT) може писати код за описом задачі. Але якість результату залежить від того, як ти поставиш задачу.
Поганий запит
Напиши скрипт для аналізу тексту
Проблема: занадто загально. AI видасть щось абстрактне, що доведеться переробляти.
Хороший запит
Напиши Python-скрипт, який:
1. Читає файл messages.txt у кодуванні UTF-8
2. Шукає рядки, що містять слово "позиці" (без урахування регістру)
3. Виводить знайдені рядки з нумерацією
4. В кінці показує загальну кількість знайдених рядків
Додай коментарі до кожного рядка коду українською мовою.
Чому краще: конкретний файл, конкретна задача, формат виводу, вимога до коментарів.
Як перевірити код від AI
Прочитай коментарі. Якщо їх немає — попроси AI додати. Код без коментарів складно перевірити.
Запусти на тестових даних. Створи файл з відомим вмістом і перевір, чи результат правильний.
Шукай підозрілі місця: абсолютні шляхи (C:\Users\SomeUser\...), незрозумілі імпорти, відсутність encoding="utf-8".
Ускладнює рішення там, де достатньо простого підходу
Використовує бібліотеки, які треба окремо встановлювати, хоча можна без них
Пише код для іншої операційної системи
Чек-лист: все працює?
☐
python --version показує 3.10 або вище
☐
VS Code встановлено, розширення Python додано
☐
Створено папку C:\osint (або ~/osint)
☐
Файл messages.txt у папці
☐
Скрипт search.py у тій самій папці
☐
Скрипт запускається без помилок
☐
Результат показує 4 знайдені рядки
Самостійна практика
Спробуй змінити скрипт:
Заміни ключове слово на "зв'язок" — скільки рядків знайде?
Додай у messages.txt ще кілька рядків і перевір, що скрипт їх знаходить
Спробуй навмисно зламати скрипт (видали лапку, відступ) і подивись, яку помилку видасть Python
Попроси AI переробити скрипт так, щоб він шукав одразу два слова
Наступний урок
Урок 2: Витягування координат з тексту
Навчимося знаходити координати в різних форматах (десяткові, градуси-хвилини-секунди) і зберігати результати в таблицю.