Попередня сторінка: 11. Списки в Python
Наступна сторінка: 13. Опрацювання кількох подій. Проект «...
Для чого потрібні глобальні змінні?
У графічному інтерфейсі, крім списків, є багато інших елементів керування, що дають користувачу можливість вибору. Наприклад, перемикачі — це круглі «кнопки», за допомогою яких можна вибрати один варіант із кількох. У нашій програмі за їх допомогою ми будемо вказувати, яке зображення виводитиметься на вітальній листівці.
Перемикач створюється за допомогою конструктора Radiobutton, а розміщується за допомогою методу place за таким самим алгоритмом, як і вже відомі тобі кнопка, список чи напис. Наприклад,
Завдання № 1
Відкрий файл програми з попереднього уроку. Додай у ньому:
• напис «Зображення на листівку» розміром 135x30;
• перемикачі з іменами rbt1, rbt2, rbt3 та підписами, що відповідають зображенням, наприклад: «Торт», «Пейзаж», «Квіти».
Розмісти ці елементи керування на тому самому рівні по горизонталі, що і напис «Вітання» та список свят, а по вертикалі напис «Зображення на листівку» розташуй на тому самому рівні, що і кнопку. Відстань між перемикачами по вертикалі зроби ЗО пікселів.
Завдання № 2
Якщо ти запустиш створену програму, то помітиш, що перемикачі неможливо обирати. Щоб створити повноцінні перемикачі, потрібно:
1. Створити цілочислову змінну для збереження порядкового номера вибраного перемикача. Наприклад, var=lntVar(), (var — ім'я змінної).
2. Додати до коду створення кожного перемикача параметр variable, якому присвоїти ім'я цієї змінної.
3. Додати до коду створення кожного перемикача параметр value. Його значенням буде число, що ідентифікує перемикач. У разі вибору користувачем перемикача це число присвоюватиметься змінній var. Наприклад,
Внеси у код описані зміни, запусти програму і переконайся, що перемикачі тепер можна обирати.
Завдання № З
Наша мета — по натисканні кнопки «Привітання» вивести те чи інше зображення залежно від вибору перемикача. Доповни алгоритм виконання цього завдання.
1. Перевірити значення змінної_.
2. Залежно від результату перевірки завантажити
до змінної img_.
3. Вивести на полотні зображення,
збережене в змінній_.
За допомогою якого оператора можна виконати крок 1?
Завдання № 4
1. Знайди в Інтернеті та завантаж до папки програми 3 файли зображень, що ілюструють обрані тобою свята. Відкоригуй зображення так, щоб вони вміщувалися на полотні.
2. Скориставшись рубрикою «Запитання-відповіді», в обробнику події натискання кнопки «Привітання» реалізуй алгоритм, побудований у попередньому завданні.
3. Перевір, як працює програма. Вибране користувачем зображення не виводиться. Це трапляється тому, що змінна img локальна, тобто існує лише в межах функції btn_click. Щойно завершується виконання цієї функції, змінна img разом із її значенням — зображенням — зникає.
4. Щоб виправити розглянутий недолік, оголоси змінну img як глобальну, скориставшись рубрикою «Запитання-відповіді». Тепер програма має працювати як слід!
ЗАПИТАННЯ-ВІДПОВІДІ
Що таке перемикачі і як їх створити?
Перемикачі — це круглі кнопки, які дають користувачу можливість обрати лише один варіант із кількох запропонованих.
Для додавання перемикача використовують такий код:
Для розташування перемикачів у вікні програми, як і для інших елементів, використовують метод place.
Як зробити так, щоб за допомогою створених перемикачів можна було обирати варіанти?
Щоб створити повноцінні перемикачі, код додавання перемикача потрібно змінити так:
• lntVar() — функція, що визначає змінну цілочислового типу.
• variable=var — зв'язує змінну з перемикачем.
• value=1 — встановлює значення змінної vary разі вибору даного перемикача.
Звичайно, для різних перемикачів потрібно задавати різні значення параметра value. Також замість імені var можна використати будь-яке інше ім'я.
Як запрограмувати виконання тієї чи іншої дії у разі вибору певного перемикача?
Потрібноу команді if перевірити значення тієїзмінної, яку було прив'язано до перемикачів за допомогою параметра variable. Залежно від її значення програмуємо певні дії.
Наприклад, у нижченаведеному коді аналізується значення змінної var і якщо воно дорівнює 1 (вибрано перший перемикач), то до змінної photo завантажується зображення з файлу f.png.
Що таке локальні і глобальні змінні?
Глобальна змінна — це змінна, яка використовується у всій програмі. Локальна змінна — це змінна, яка використовується лише у якійсь функції.
Для того, щоб у певній функції змінна сприймалася програмою як глобальна, потрібно в тілі функції записати таку команду:
ПЕРЕВІР СЕБЕ
1. Як називається конструктор перемикача і який синтаксис його створення?
2. Якими методами можна розташувати перемикачі у вікні?
3. У чому різниця між глобальною та локальною змінною?
4. Створиусвоїй програмі із завдання 2 ще одну групу перемикачів для вибору статі «ж» або «ч» і залежно від вибору додавай до тексту привітання «Шановна» чи «Шановний».
5. Створи комп'ютерний варіант гри «Камінь-Ножиці-Папір». Розташуй у вікні програми елементи керування за зразком. Коли користувач вибирає один із 3 перемикачів і натискає кнопку «Ввести», твоя програма має:
• Згенерувати випадкове число від 1 до З і залежно від результату вивести під написом «Вибір комп'ютера» один із 3 написів: «Камінь», «Ножиці» чи «Папір».
• Порівняти вибір користувача і число, згенероване комп'ютером. Залежно від результату, вивести одне з трьох зображень з файлів-заготовокта внизу вікна один із написів: «Ти переміг!», «Комп'ютер переміг!» чи «Нічия».
Наприклад, якщо користувач вибрав «Ножиці», а комп'ютер згене-рував число 3 (Папір), то має відобразитися малюнок 2.png (ножиці ріжуть папір) та напис «Ти переміг!».
Нагадаємо, що ножиці ріжуть папір, але ламаються об камінь, а папір накриває камінь. Якщо вибір користувача і комп'ютера однаковий, має виводитися лише напис «Нічия» і ніякого зображення.
Увага!
Щоб порівняти вибір користувача і комп'ютера, потрібно скористатися вкладеними умовними операторами (ти їх вчив/вчилау 7 класі).
Щоб згенерувати випадкове ціле число в діапазоні від а до b включно, потрібно підключити модуль random командою гот random import* та власне згенерувати число командою randint(a,b).
б. Які переваги мають глобальні змінні порівняно з локальними?
Це матеріал з підручника Інформатика 8 клас Коршунова (2021)
Наступна сторінка: 13. Опрацювання кількох подій. Проект «...