Створення програми зі словниками та списками
👩🏫Методичні акценти для вчителя • План проведення уроку на 45 хвНУШ▼
🎯 Очікувані результати навчання (НУШ):
Формування предметних компетентностей за темою «Створення програми зі словниками та списками», розвиток критичного мислення, вміння аналізувати причинно-наслідкові зв'язки та застосовувати набуті знання на практиці.
💬 Провокативне питання для старту:
Використайте блок «Гачок (Hook)» нижче для 2-хвилинної розминки з класом перед поясненням нового матеріалу.
⏱️ Рекомендований таймінг 45-хвилинного уроку:
Тема: ПР 12. Створення програми зі словниками та списками. Д/з: опрацювати матеріал уроку та завдання «У зошит» на платформі EZZ-SCHOOL BOOKS.
⚡ Фронтальне бліц-опитування класу на початку уроку (2 хв):
- Що є ключовим поняттям теми «Створення програми зі словниками та списками» і чому воно важливе?
- Де у повсякденному житті, науці чи IT ми стикаємося з цим явищем/алгоритмом?
- Яка найпоширеніша помилка виникає під час першого знайомства з матеріалом?
🏠 Диференційоване домашнє завдання:
- Базовий рівень (обов'язковий): опрацювати конспект і блок «У зошит».
- Достатній рівень: скласти власну шпаргалку та пройти MiniCheck.
- Високий / STEM: виконати симуляцію у лабораторії та скласти BossQuiz на 100 XP.
📊 Критерії формувального оцінювання:
Твоя місія на цей урок
Натискай на цілі у міру їх опанування:
- 1Запрограмувати інтерактивний конструктор-перекладач речень за допомогою словників Python.Опанувати ➔
- 2Поєднати три словники лексичних категорій (підмет, присудок, обставина) з випадаючими списками ttk.Combobox.Опанувати ➔
- 3Сформувати українське речення через конкатенацію вибраних ключів.Опанувати ➔
- 4Реалізувати миттєвий англомовний переклад речення через витягнення відповідних значень зі словників.Опанувати ➔
- 5Додати функцію випадкової генерації граматично узгодженої фрази за допомогою модуля random.Опанувати ➔
🤖 Створюємо власний кишеньковий Google Translate!
Як комп'ютерні програми переводять людську мову? В основі будь-якого базового машинного перекладача лежить словник відповідностей (словникова база). Сьогодні ви створите програму, яка вміє комбінувати частини мови та перекладати цілі граматичні фрази англійською мовою!
1. Мета та покроковий алгоритм виконання
Мета роботи: Розробити систему керування словником у Python (інтерактивний англо-український перекладач): реалізувати додавання нових слів, безпечний пошук через .get(), оновлення перекладів, видалення через .pop() та підрахунок частоти повторення слів у довільному тексті.
Повний код проекту словника:
dictionary = {
"apple": "яблуко",
"book": "книга",
"school": "школа",
"computer": "комп'ютер",
"algorithm": "алгоритм"
}
def translate(word):
word_clean = word.strip().lower()
return dictionary.get(word_clean, "Переклад не знайдено в базі")
def add_word(en, ukr):
dictionary[en.strip().lower()] = ukr.strip().lower()
print(f"Слово '{en}' успішно додано!")
# Демонстрація частотного аналізу речення:
sentence = "python is great and python is fast"
freq = {}
for w in sentence.split():
freq[w] = freq.get(w, 0) + 1
print("Статистика частоти слів:")
for word, count in freq.items():
print(f" • {word}: {count} раз(и)")Пари «Ключ : Значення» (Хеш-таблиця dict)
d = { ... }: Ключі унікальні, значення можуть дублюватись🔍 Миттєвий пошук за ключем: d[key]
➕ Додавання / Оновлення: d[key] = value
💻 Ключові методи словників Python:
d = {'apple': 'яблуко', 'cat': 'кіт'}
print(d['apple']) # Доступ за ключем -> 'яблуко'
d['dog'] = 'собака' # Додавання нового елемента
for key, value in d.items(): # Ітерація по парах
print(f"{key} -> {value}")2. Переваги словників над двома паралельними списками
У двох паралельних списках keys = [...] та values = [...] пошук потребує виконання keys.index(word), що перебирає весь список з початку до кінця за час $O(N)$. Словник за рахунок хешування знаходить переклад за фіксований час $O(1)$ незалежно від того, чи у словнику 10 слів, чи 1 000 000 слів!
📋 Технологічна карта виконання Практичної роботи 12: Структури даних «Словники» (dict) у Python
Програмне забезпечення: Python 3.x / IDLE
| Етап роботи | Операція, гарячі клавіші та дія | Очікуваний результат |
|---|---|---|
| Крок 1. Створення словника | Створити словник контактів або англо-українського перекладача: phone_book = {"Олександр": "0971234567", "Марія": "0509876543"} | Асоціативний масив пар «ключ: значення» |
| Крок 2. Додавання та зміна записів | Додати новий контакт: phone_book["Іван"] = "0631112233"; оновити існуючий | Динамічне оновлення пар без дублювання ключів |
| Крок 3. Безпечний пошук за ключем | Використати метод .get(key, default) для уникнення помилки KeyError: phone_book.get("Тарас", "Не знайдено") | Стабільна робота програми при відсутності запису в базі |
| Крок 4. Частотний словник тексту | Написати алгоритм підрахунку кількості кожного слова у реченні: for w in words: counts[w] = counts.get(w, 0) + 1 | Статистика частоти зустрічальності кожного слова |
| Крок 5. Сортування за значенням | Відсортувати словник за кількістю слів: sorted(counts.items(), key=lambda x: x[1], reverse=True) | Рейтинг топ-5 найуживаніших слів тексту |
🎯 Критерії оцінювання практичної роботи (НУШ 12 балів)
| Рівень навчальних досягнень | Вимоги до виконаного практичного завдання |
|---|---|
| Початковий (1–3 б.) | Вміє створювати простий словник із 2–3 пар «ключ: значення». |
| Середній (4–6 б.) | Виконує додавання, видалення (del) та пошук значень за ключем. |
| Достатній (7–9 б.) | Організовує перебір пар методом .items() та реалізує частотний словник для тексту. |
| Високий (10–12 б.) | Побудовано складну багаторівневу структуру (словник списків або JSON) з пошуком, фільтрацією та збереженням у файл. |
Як скласти правильний англійський переклад 'Підмет + Присудок + Прислівник' за вибраними словами у комбобоксах?
У зошит (за підручником)
Вправи з підручника до цієї теми уроку. Виконуй у робочий зошит або за комп'ютером за вказівкою вчителя:
Створення програми «Перекладач» з використанням словників, списків та віджетів Combobox
💡 Підказка від нас: Створити 3 словники (іменники, прислівники, дієслова), 3 випадаючих списки Combobox, кнопки 'Скласти фразу', 'Перекласти' та 'Випадковий вибір' з модулем random.
Шпаргалка уроку (головне в один екран)
Усе найважливіше для повторення перед уроком або самостійною роботою
Створення графічного списку з варіантами вибору.
Встановлення вибору на елемент за вказаним числовим індексом.
Отримання поточного текстового рядка, обраного користувачем.
Миттєве отримання перекладу слова за словником.
Вибір випадкового індексу для випадкового речення.
Бос-тест: ПР № 12 — Алгоритми зі словниками в Python
Питання 1 з 3 • Завдай удару по босу теми