Ось готовий урок, створений за твоїм майстер-промптом. Це CS50-стайл: енергійно, з прикладами та фокусом на розумінні суті.
🎓 УРОК: Автоматизація задач за допомогою скриптів
Привіт, світ! 👋 Я радий бачити вас тут.
Сьогодні ми поговоримо про суперсилу. Серйозно. Уявіть, що у вас є можливість клонувати себе, щоб цей клон робив усю нудну роботу, поки ви п’єте каву. Звучить непогано? Це і є скриптинг.
1. 🔥 Вступ: Чому ми взагалі про це говоримо?
Уявіть ситуацію. Ви працюєте маркетологом, бухгалтером або просто організовуєте сімейний фотоархів. У вас є папка, в якій лежить 5 000 фотографій із назвами типу DSC_00192.jpg. А вам треба перейменувати їх усі на Відпустка_2023_001.jpg і так далі.
Питання до вас: Як ви будете це робити?
1. Клік правою кнопкою -> "Перейменувати" -> Ввести назву. І так 5000 разів?
2. Наймете стажера (якщо він є)?
3. Чи напишете 5 рядків коду, натиснете Enter і підете дивитися серіал?
Якщо ви вибрали варіант №1, то через 2 години ви зненавидите комп’ютер. Якщо №3 — ви зрозуміли суть нашого уроку.
Аналогія: Уявіть, що ви на кухні. * Ручна робота — це коли ви миєте кожну тарілку окремо губкою. * Скрипт — це посудомийна машина. Ви один раз завантажуєте правила (тарілки сюди, миючий засіб сюди) — і машина робить брудну роботу за вас.
Без скриптів ви — раб свого комп’ютера. Зі скриптами — ви його командир. Поїхали розбиратися!
2. 🧠 Теоретична база: Що там "під капотом"?
Давайте відкинемо складні терміни. Що таке скрипт?
Скрипт — це невелика програма (сценарій), написана для виконання конкретної, часто рутинної задачі.
На відміну від великих програм (як Photoshop чи Excel), скрипти зазвичай: 1. Короткі (часто це один файл). 2. Інтерпретуються (виконуються рядок за рядком спеціальною програмою-інтерпретатором, наприклад, Python або Bash). 3. Використовують готові інструменти (бібліотеки).
Як це працює? (Логіка, а не магія)
Уявіть скрипт як рецепт для кухаря-робота: 1. Input (Вхід): Взяти список файлів у папці. 2. Process (Обробка - Цикл): Для кожного файлу: * Прочитати стару назву. * Створити нову назву. * Дати команду операційній системі: "Зміни назву!". 3. Output (Вихід): Повідомити: "Готово, шеф!".
🔑 Що треба запам'ятати залізно: * Комп'ютер тупий. Він робить рівно те, що ви сказали. Якщо ви скажете видалити все — він видалить все. * Цикл (Loop) — це серце автоматизації. Це механізм "зроби це для кожного елемента".
💡 Що можна поки зрозуміти інтуїтивно:
Вам не треба писати код для доступу до жорсткого диска з нуля. Розумні люди вже написали бібліотеки (набори інструментів). Ваша задача — просто взяти з полиці потрібний інструмент (наприклад, бібліотеку os у Python) і використати його.
3. 🧪 Приклади: Від "Hello" до реальної магії
Ми будемо використовувати мову Python, бо вона читається як англійська і ідеальна для автоматизації.
Приклад 1: Найпростіший робот
Уявіть, що вас покарали в школі й змусили писати на дошці 100 разів "Я не буду запізнюватися".
Що ми очікуємо? Код, який не змушує нас писати це 100 разів вручну.
# range(100) створює послідовність від 0 до 99
for i in range(100):
print(f"{i + 1}. Я не буду запізнюватися")
Чому так?
Ми використали цикл for. Комп'ютер "біжить" по колу 100 разів і щоразу виконує команду print.
Приклад 2: Реальна задача (Сортування файлів)
У вас на робочому столі безлад: куча файлів .txt, .jpg, .pdf. Давайте розкладемо їх по папках.
Питання: Як комп'ютер дізнається, що куди класти? Відповідь: Ми перевіримо розширення файлу (те, що після крапки).
import os
import shutil
# Уявімо, що це наша папка зі сміттям
folder = "./downloads"
# Отримуємо список усіх файлів
files = os.listdir(folder)
for file_name in files:
# Перевіряємо, чи це текстовий файл
if file_name.endswith(".txt"):
# Створюємо команду: перемістити файл у папку "Docs"
# shutil.move(звідки, куди)
print(f"Переміщую {file_name} у папку Документи...")
# shutil.move(os.path.join(folder, file_name), "./docs")
(Примітка: реальна команда move закоментована, щоб ви випадково не запустили це без підготовки, але логіка саме така!)
Аналіз:
1. import os — ми взяли "ящик з інструментами" для роботи з системою.
2. os.listdir — це як відкрити папку і подивитися очима.
3. if ... endswith — це наш фільтр.
4. 🛠 Практична частина
Час бруднити руки! Відкрийте редактор коду (або уявіть його).
🔹 Завдання 1: Розігрів Напишіть скрипт, який виводить фразу "Автоматизація — це круто!" 5 разів.
🔹 Завдання 2: Зміна умов Змініть скрипт із Завдання 1 так, щоб він писав номер рядка перед фразою (наприклад: "1. Автоматизація..."). Підказка: згадайте приклад про школу.
🔹 Завдання 3: Виправи помилку Студент написав код, щоб привітати користувачів зі списку, але код не працює. Чому?
users = ["Аліна", "Богдан", "Віка"]
print("Привіт, " + user) # Помилка тут
Підказка: Де тут цикл? Комп'ютер не знає, хто такий user, поки ми не скажемо for user in users:.
🔹 Завдання 4: Міні-кейс
У вас є список цін: [100, 200, 300]. Напишіть скрипт, який автоматично додає до кожної ціни податок 20% і виводить фінальну суму.
🔹 Завдання 5: А що, якщо... Що станеться, якщо ваш скрипт спробує створити папку "Архів", а така папка вже існує? Спробуйте подумати, як запобігти помилці (гуглити: "python check if folder exists").
5. 💡 Мислення як у розробника
Ось де ми переходимо від новачків до профі. Як думає досвідчений інженер?
1. "Dry Run" (Холостий прогін) — Золоте правило
Новачок пише скрипт для видалення старих файлів і відразу запускає. Бабах! Видалив весільні фото замість тимчасових файлів.
Профі: Завжди спочатку пише print("Я збираюся видалити файл: " + file_name), запускає, дивиться очима список, і тільки потім замінює print на команду видалення.
2. Принцип XKCD (Час проти Автоматизації)
Не треба автоматизувати те, що ви робите раз на рік і це займає 5 хвилин. Якщо написання скрипта займе 3 години, а економія — 5 хвилин на рік, не робіть цього. Автоматизуйте те, що повторюється часто.
3. Ледача досконалість
Хороший розробник — ледачий. Якщо є готова бібліотека (наприклад, для роботи з Excel файлами — pandas або openpyxl), він не буде писати свій парсер. Він візьме готове.
6. 🧩 Підсумок
Отже, що ми сьогодні зробили?
- Зрозуміли, що скрипт — це ваш персональний робот для нудних справ.
- Розібрали, що в основі лежить цикл (перебір елементів) та умова (що з ними робити).
- Навчилися бути обережними і використовувати Dry Run.
Тепер ви вмієте: Бачити рутинну задачу і думати: "Гей, я не буду робити це руками. Я напишу скрипт". Це і є мислення програміста.
🔜 У наступній серії: Ми автоматизували файли на комп'ютері. Але що, якщо дані живуть в інтернеті? Наступного разу ми поговоримо про API та Web Scraping — як писати скрипти, які самі гуляють інтернетом і збирають для вас інформацію (наприклад, ціни на авіаквитки).
А поки — спробуйте не робити руками те, що можна зробити кодом. Це CS50! 🚀