Словники (dict) у Python
👩🏫Методичні акценти для вчителя • План проведення уроку на 45 хвНУШ▼
🎯 Очікувані результати навчання (НУШ):
Формування предметних компетентностей за темою «Словники (dict) у Python», розвиток критичного мислення, вміння аналізувати причинно-наслідкові зв'язки та застосовувати набуті знання на практиці.
💬 Провокативне питання для старту:
Використайте блок «Гачок (Hook)» нижче для 2-хвилинної розминки з класом перед поясненням нового матеріалу.
⏱️ Рекомендований таймінг 45-хвилинного уроку:
Тема: § 34. Словники (dict) у Python. Д/з: опрацювати матеріал уроку та завдання «У зошит» на платформі EZZ-SCHOOL BOOKS.
⚡ Фронтальне бліц-опитування класу на початку уроку (2 хв):
- Що є ключовим поняттям теми «Словники (dict) у Python» і чому воно важливе?
- Де у повсякденному житті, науці чи IT ми стикаємося з цим явищем/алгоритмом?
- Яка найпоширеніша помилка виникає під час першого знайомства з матеріалом?
🏠 Диференційоване домашнє завдання:
- Базовий рівень (обов'язковий): опрацювати конспект і блок «У зошит».
- Достатній рівень: скласти власну шпаргалку та пройти MiniCheck.
- Високий / STEM: виконати симуляцію у лабораторії та скласти BossQuiz на 100 XP.
📊 Критерії формувального оцінювання:
Твоя місія на цей урок
Натискай на цілі у міру їх опанування:
- 1Зрозуміти концепцію асоціативного масиву (словника) як структури пар 'ключ: значення'.Опанувати ➔
- 2Опанувати синтаксис створення, читання та модифікації словників у Python.Опанувати ➔
- 3Засвоїти ключові методи: keys(), values(), items(), pop(), get().Опанувати ➔
- 4Навчитися перевіряти наявність ключа за допомогою оператора in.Опанувати ➔
- 5Поєднувати словники з віджетами GUI (ttk.Combobox, Entry, Label).Опанувати ➔
💡 Чому шукати за індексом — це минуле століття?
У списку, щоб знайти номер телефону однокласника, довелося б пам'ятати: 'Андрій під номером 14, а Катя — під номером 7'. Але в реальному житті ми шукаємо за іменем: 'Андрій' -> +380... Саме для цього створено словники (dict) — структуру даних, де замість номерів індексами виступають будь-які слова чи поняття (ключі)!
1. Що таке словник (dict) та пари ключ-значення?
У списках ми звертаємося до елементів за числовими індексами (0, 1, 2...). Але що робити, коли ми хочемо знайти столицю країни за її назвою або телефон за прізвищем? Для цього існує словник (тип даних dict) — асоціативний масив, що зберігає пари ключ : значення (key : value).
Вимоги до ключа (Key)
Ключ має бути унікальним та незмінним (hashable): рядком, числом або кортежем. Списки та інші словники не можуть бути ключами!
Значення (Value)
Значенням може бути абсолютно будь-який об'єкт Python: число, список, словник, функція. Значення можуть повторюватися.
Пари «Ключ : Значення» (Хеш-таблиця 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. Методи та безпечний доступ через .get()
Якщо звернутися до неіснуючого ключа через квадратні дужки capitals["Італія"], програма аварійно впаде з помилкою KeyError. Щоб уникнути краху, використовують безпечний метод .get():
Базові методи словників:
| Метод | Що повертає / виконує | Приклад |
|---|---|---|
| .keys() | Колекцію всіх ключів словника | for k in d.keys(): |
| .values() | Колекцію всіх значень | total = sum(d.values()) |
| .items() | Пари кортежів (ключ, значення) для зручного перебору в циклі | for k, v in d.items(): |
| .pop(key) | Видаляє ключ і повертає його значення | val = d.pop("Київ") |
| key in d | Перевірка наявності ключа у словнику (повертає True/False) | if "Київ" in d: |
3. Частотний аналіз тексту за допомогою словника
Класична задача криптографії та штучного інтелекту — порахувати, скільки разів кожне слово або літера зустрічається у тексті:
text = "сонце світить світить сонце гріє"
counts = {}
for word in text.split():
counts[word] = counts.get(word, 0) + 1
# Результат: {'сонце': 2, 'світить': 2, 'гріє': 1}
for word, freq in counts.items():
print(f"Слово '{word}' зустрілося {freq} раз(и)")Яке твердження щодо методів словника d.keys(), d.values() та d.items() є правильним?
У зошит (за підручником)
Вправи з підручника до цієї теми уроку. Виконуй у робочий зошит або за комп'ютером за вказівкою вчителя:
Створення графічної програми «Банкноти України» на основі словника
💡 Підказка від нас: Створити словник bank = {1000: 'Володимир Вернадський', 500: 'Григорій Сковорода', 200: 'Леся Українка'}. За введеним у поле Entry номіналом виводити ім'я діяча або повідомлення про помилку.
Шпаргалка уроку (головне в один екран)
Усе найважливіше для повторення перед уроком або самостійною роботою
Створення словника з парами 'ключ: значення'.
Отримання значення за ключем (викликає KeyError, якщо ключ відсутній).
Безпечне отримання значення: повертає def, якщо ключ відсутній.
Додавання нової пари або оновлення існуючого ключа.
Видалення елемента за ключем із поверненням його значення.
Швидка перевірка наявності ключа у словнику.
Бос-тест: Словники в Python (структура dict)
Питання 1 з 3 • Завдай удару по босу теми