Інформація про новину
  • Переглядів: 241
  • Дата: 5-04-2021, 21:59
5-04-2021, 21:59

12. Використання перемикачів в Python. Глобальні змінні

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





Попередня сторінка:  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)

 



Попередня сторінка:  11. Списки в Python
Наступна сторінка:   13. Опрацювання кількох подій. Проект «...



^