Інформація про новину
  • Переглядів: 51
  • Дата: 4-10-2021, 08:33
4-10-2021, 08:33

38. Словники. Віджет Combobox в PyCharm

Категорія: Інформатика





Попередня сторінка:  37. Алгоритми з повтореннями. Цикли в Pyth...
Наступна сторінка:   Словник термінів з інформатики за 8 кл...

Списки дозволяють пов’язувати сукупність даних у єдину структуру. Якщо ж потрібно мати доступ до даних за певним ключем, застосовують складнішу структуру — словник (рис. 38.1).

На рисунку видно, що в словнику кожен елемент даних позначений ключовим словом, тобто словник поєднує два набори даних, в одному з яких всі значення різні: назви товарів та їх ціни, назви країн та їх столиць, характеристики автомобіля та їх значення тощо.

Можна створити словник, який описує об’єкт людина, і зберегти в ньому назви властивостей об’єкта (ім’я, вік, стать, професія тощо) та їх значення. Якщо об’єднати словники в список, то можна ефективно опрацьовувати великі обсяги персональних даних.

Створення словників

Словник (об’єкт типу diet) — невпорядкована сукупність пар ключ: значення. Кожне значення в словнику має унікальний ключ, який є об’єктом одного з незмінюваних типів: рядком, логічним значенням, цілим або дійсним числом.

Щоб створити словник, потрібно помістити у фігурні дужки

пари ключ: значення, розділені комами:

Створимо порожній словник zakupy і словник magazyn для збереження пар товар: ціна.

Доступ до елементів словника здійснюється за ключем, а не за індексом, тому ключ не може повторюватися.

Отримаємо зі словника magazyn елемент із ключем "яблука":

Якщо ключа в словнику немає, буде згенеровано помилку:

Щоб попередити таку помилку, слід перевірити наявність ключа в словнику за допомогою виразу <кпюч> in <словник>:

Для додавання елемента у словник слід звернутися до елемента за його ключем і присвоїти йому значення. Якщо ключ у словнику вже існує, поточне значення буде замінено новим.

Установимо для словника magazyn значення елемента з ключем 'морква':

Для видалення елемента за ключем застосовується оператор del:

Методи словників

Розглянемо деякі методи об’єктів типу diet на прикладі:

Перебір елементів словника

Послідовно перебрати всі елементи в словнику можна в циклі for. При переборі елементів ми отримуємо ключ поточного елемента і за ним можемо отримати значення елемента.

Переберемо всі ключі у словнику books і виведемо на екран ключі з відповідними значеннями (рис. 38.2):

Для перебору лише значень можна викликати метод valuesQ.

Виведемо на екран всі значення зі словника books (рис. 38.3):

Елемент керування Поле зі списком (Combobox)

Віджет Tkinter Combobox — це розкривний список для вибору значень. Якщо натиснути на кнопку, можна побачити список варіантів, а при виборі одного з варіантів він стане поточним.

Клас Combobox описано в модулі Tkinter ttk, тому для використання віджета слід імпортувати цей модуль.

Створимо екземпляр віджета Combobox і присвоїмо значення, які міститиме список (рис. 38.4):

Елемент, що виводиться в полі, можна програмно замінити на будь-який елемент зі списку, використовуючи метод current(index).

Зробимо поточним елемент списку з індексом 3 (рис. 38.5):

Метод currentO можна також використовувати для отримання індексу поточного (вибраного) елемента. Щоб отримати значення поточного елемента, слід використати метод get().

Збережемо у змінних index і item індекс і значення вибраного елемента списку:

У результаті виконання коду буде виведено рядок: індекс вибраного елемента - 3, значення - Собор

Питання для самоперевірки

1. Дано словник:

Яким буде результат виконання операторів:

2. Як додати до словника magazyn товар капуста вартістю 5 грн?

3. Опишіть способи послідовного перебору значень у словнику.

4. Як задати вміст списку для віджета Combobox?

5. Як отримати значення вибраного елемента зі списку віджета Combobox?

6. Напишіть програму, яка моделює діалог в овочевому магазині: покупець вводить назву товару і кількість кілограмів, яку хоче придбати; програма обчислює загальну вартість покупки. Для збереження набору даних використайте словник із п. 1.

Вправа 38

Створити програму Банкноти України.

Напишіть програму, яка виводить імена видатних особистостей України, яких зображено на грошових знаках.

1) Завантажте середовище PyCharm. Створіть Python file із назвою Вправа 38.

Завантажте модулі tkinter, ttk, messagebox.

Створіть вікно розміром 400x250 із заголовком Банкноти.

2) Додайте до вікна віджети lab_nom класу Label, ent_nom класу Entry:

Додайте до вікна віджети lab_name класу Label, ent_name класу Entry для виведення імені особи, що зображена на банкноті. 3) Створіть об’єкт btn класу Button:

4) Створіть словник bank для збереження пар <номінал>: <ім'я>:

Доповніть словник елементами, що відповідають іншим банкнотам. Відомості про банкноти можна отримати на сайті Національного банку України bank.gov.ua.

5) Опишіть функцію btn_click:

6) Додайте до вікна полотно canvas для виведення зображення банкноти:

Помістіть у папку з файлом програми графічні файли із зображеннями банкнот (наприклад, з назвами файлів ІООО.рпд, 500.png тощо).

Створіть словник bankjmage для збереження пар <номінал>:

У тілі функції btn_dick(): до операторів, що виконуються у випадку, коли умова nom in bank істинна, додайте оператори для зміни зображення в canvas:

Комп’ютерне тестування

Виконайте тестове завдання 38 із автоматичною перевіркою результату.

Практична робота 13

Створення програми з використанням словників і списків

Завдання: скласти програму, яка складає речення з трьох наборів слів, комбінуючи з них слова.

Обладнання: комп’ютер зі встановленою системою програмування PyCharm Community Edition.

Хід роботи

Під час роботи з комп’ютером дотримуйтеся правил безпеки.

1. Створіть новий Python file Практична робота 13. Підключіть модулі: tkinter, ttk, random.

2. Створіть вікно програми із заголовком Перекладач.

3. Підготуйте словники, в яких будуть зберігатися слова для списків віджетів Combo box.

4. На основі словника с1 сформуйте список ключів:

5. Так само створіть списки кеу2, кеуЗ.

6. Слова для складання речення будуть вибиратися з трьох розкривних списків (див. рисунок).

Створіть три віджети за зразком (розміщуйте методом grid()):

7. Створіть об’єкт класу Entry для виведення сформованого речення:

8. Створіть командну кнопку Скласти фразу:

9. Створіть кнопки Перекласти, Вибрати випадково.

10. Запрограмуйте процедуру обробки події для командної кнопки btnl. Рядок s створюється як результат конкатенації рядків, вибраних в елементах combo1...combo3, між якими додаються пропуски. Отримане значення виводиться в текстове поле fraza.

11. Запрограмуйте процедуру обробки події для командної кнопки btn2. Рядок s створюється як результат конкатенації значень, що відповідають ключам, отриманим із віджетів combo1...combo3. Отримане значення виводиться в текстове поле fraza.

12. Запрограмуйте можливість випадкового формування речення. Створіть процедуру обробки події для командної кнопки btn3. Задайте індекс вибраного елемента випадковим чином:

Випробуйте програму. Перевірте роботу кнопок.

Зробіть висновок: які переваги надає використання словників і розкривних списків.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 



Попередня сторінка:  37. Алгоритми з повтореннями. Цикли в Pyth...
Наступна сторінка:   Словник термінів з інформатики за 8 кл...



^