(Практична робота для 6-х класів)
Тема: Організація
діалогу з користувачем
Задача: Написати програму
яка створює калькулятор.
ХІД РОБОТИ:
1. Відкриваємо середовище програмування Python (IDLE)
2. Створюємо новий програмний проект (File à New file)
3. Вводимо текст програми:
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
root.mainloop()
4. Зберігаємо текст програми у файлі (File à Save As à 500 à Save)
5. Компілюємо програму (F5)
6. Аналізуємо текст програми (виправляємо, якщо потрібно, помилки і знову тиснемо F5).
В результаті виконання програми на екрані повинно з'явитись наступне вікно:
У цьому вікні нам потрібно створити:
- два текстові поля для введення двох чисел, з якими будуть
виконуватися дії;
- кнопки, натиснення на які будуть відбуватися дії: додавання,
віднімання, множення або ділення цих двох введених користувачем чисел (всього,
таким чином – 4 кнопки)
- текстове поле для виведення результатів виконання дії.
Текстове поле (назвем його pole1) створюється за
допомогою функції Entry():
pole1=Enrty(root)
pole1.place(x=10, y=10) – цей додатковий
рядок вказує місце розміщення поля
Додамо ці рядки у попередню програму:
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10, y=10)
root.mainloop()
(додані рядки виділено червоним кольором)
Результатом виконання програми є наступне вікно:
Але нам потрібно два поля, бо для виконання дії потрібно хоча би два
числа. Тому додаємо до програми ще два рядки для створення другого поля
(назвемо його pole2):
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150, y=10)
root.mainloop()
Результатом виконання програми є наступне вікно:
Тепер потрібно створити кнопки дій. Згадаємо, що кнопка (назвемо її knop1), створюється за допомогою функції Button().
knop1=Button(root)
knop1.place(x=10,
y=40) – цей рядок вказує місце
розміщення кнопки
Додамо ці рядки у попередню програму:
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150,
y=10)
knop1=Button(root)
knop1.place(x=20, y=40)
root.mainloop()
Але кнопок нам потрібно чотири:
- кнопка додавання (knop1)
- кнопка віднімання (knop2)
- кнопка множення (knop3)
- кнопка ділення (knop4)
Тому додамо ще відповідні рядки до попередньої програми:
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10, y=10)
pole2=Entry(root)
pole2.place(x=150, y=10)
knop1=Button(root)
knop1.place(x=20, y=40)
knop2=Button(root)
knop2.place(x=90, y=40)
knop3=Button(root)
knop3.place(x=160, y=40)
knop4=Button(root)
knop4.place(x=230, y=40)
root.mainloop()
Щоб відрізнити ці кнопки, на них потрібно зробити відповідні
позначки: +, -, *, /
Для цього у властивості кожної кнопки допишемо параметр text=’напис’
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150,
y=10)
knop1=Button(root,
text=' + ')
knop1.place(x=20,
y=40)
knop2=Button(root,
text=' - ')
knop2.place(x=90,
y=40)
knop3=Button(root,
text=' * ')
knop3.place(x=160,
y=40)
knop4=Button(root,
text=' / ')
knop4.place(x=230,
y=40)
root.mainloop()
Але де результат дій? Щоб його побачити, потрібно стоворити ще одне
текстове поле pole3(). Додамо також ще два рядка програми для
створення напису «Результат:»
napys=Label(root,
text='Результат:')
napys.place(x=40,
y=80)
Додамо ці рядки у попередню програму:
from
tkinter import *
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150,
y=10)
knop1=Button(root,
text=' +
')
knop1.place(x=20,
y=40)
knop2=Button(root,
text=' -
')
knop2.place(x=90,
y=40)
knop3=Button(root,
text=' *
')
knop3.place(x=160,
y=40)
knop4=Button(root,
text=' /
')
knop4.place(x=230,
y=40)
pole3=Entry(root)
pole3.place(x=120, y=80)
napys=Label(root, text='Результат:')
napys.place(x=40, y=80)
root.mainloop()
Тепер начеб-то все готове – є поля для введення двох чисел, кнопки дій
та поле для виведення результату. Але немає головного – обробників подій. Ми
натискуємо на кнопку, а результату немає – «під кнопками – пусто». Згадаємо, що обробник події – це
мікропрограма (функція), яка власне і виконує ту дію, яка написана на кнопці.
Назва обробника записується у властивостях відповідної кнопки, а сам
обробник – на початку програми після першого рядка. Створимо спочатку обробник
події для виконання дії додавання:
У властивості кнопки knop1 допишемо параметр command=knop1_click (що означає – при
натисненні кнопки knop1 виконуватиметься команда).
Яка саме команда виконуватиметься, вказує програма-обробник:
def
knop1_click():
x=float(pole1.get())
y=float(pole2.get())
z=x+y
pole3.delete(0, END)
pole3.insert(0,str(z))
тут x – це число (float), яке дістанемо (get) з текстового поля pole1;
так само y – це число (float), яке дістанемо (get) з текстового поля pole2;
а у текстове поле pole3 буде вставлено (insert) рядок (str) цифр числа z.
Рядок pole3.delete(0, END)
очищує поле перед записом туди числа
Додамо ці рядки до програми:
from
tkinter import *
def knop1_click():
x=float(pole1.get())
y=float(pole2.get())
z=x+y
pole3.delete(0, END)
pole3.insert(0,str(z))
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150,
y=10)
knop1=Button(root,
text=' +
', command=knop1_click)
knop1.place(x=20,
y=40)
knop2=Button(root,
text=' -
')
knop2.place(x=90,
y=40)
knop3=Button(root,
text=' *
')
knop3.place(x=160,
y=40)
knop4=Button(root,
text=' /
')
knop4.place(x=230,
y=40)
pole3=Entry(root)
pole3.place(x=120,
y=80)
napys=Label(root,
text='Результат:')
napys.place(x=40,
y=80)
root.mainloop()
Подібним чином створимо обробники для кнопок віднімання, множення та
ділення:
from
tkinter import *
def
knop1_click():
x=float(pole1.get())
y=float(pole2.get())
z=x+y
pole3.delete(0, END)
pole3.insert(0,str(z))
def knop2_click():
x=float(pole1.get())
y=float(pole2.get())
z=x-y
pole3.delete(0, END)
pole3.insert(0,str(z))
def knop3_click():
x=float(pole1.get())
y=float(pole2.get())
z=x*y
pole3.delete(0, END)
pole3.insert(0,str(z))
def knop4_click():
x=float(pole1.get())
y=float(pole2.get())
z=x/y
pole3.delete(0, END)
pole3.insert(0,str(z))
root=Tk()
root.title('Калькулятор')
root.geometry('290x120')
pole1=Entry(root)
pole1.place(x=10,
y=10)
pole2=Entry(root)
pole2.place(x=150,
y=10)
knop1=Button(root,
text=' +
', command=knop1_click)
knop1.place(x=20,
y=40)
knop2=Button(root,
text=' -
', command=knop2_click)
knop2.place(x=90,
y=40)
knop3=Button(root,
text=' *
', command=knop3_click)
knop3.place(x=160,
y=40)
knop4=Button(root,
text=' /
', command=knop4_click)
knop4.place(x=230,
y=40)
pole3=Entry(root)
pole3.place(x=120,
y=80)
napys=Label(root,
text='Результат:')
napys.place(x=40,
y=80)
root.mainloop()
Все! Калькулятор готовий до роботи!
Після виконання практичної роботи надішліть копію екрану (скрін-шот) зі створеним вікном і вікном тексту програми на електронну адресу kab11.gimnazia@gmail.com або зробіть фото екрану і надішліть на Viber №0953262513
Немає коментарів:
Дописати коментар