≪ 100 Баллов
≫У Python IDLE виберіть команду File New File.
1. Запишіть команду завантаження модуля tkinter і створіть вікно програми (650
× 50) із заголовком Калькулятор.
2. Додайте до вікна три віджети lab1–lab3 класу Label для виведення заголовків
#1, #2, =. Задайте такі значення атрибутів об’єктів, щоб віджети виглядали так,
як на рисунку.
3. Додайте до вікна віджет еntry1 класу Entry для введення першого числа:
entry1 = Entry(root, text = 's1', width = 6, font = 'Arial 18')
entry1.place(x = 55, y = 10)
4. Додайте до вікна два віджети еntry2 і еntry3 класу Entry.
5. Додайте до вікна віджет b1 класу Button:
b1 = Button(root, text = '+', command = b1_click)
b1.place(x = 150, y = 10)
6. Додайте до вікна ще чотири об’єкти b2–b5 класу Button.
Атрибуту text кожного з об’єктів задайте значення відповідно до зразка.
7. Створіть обробник події Натискання на кнопку b1_click.
У коді методу зчитуються значення з полів об’єктів entry1 та entry2,
формується текстовий рядок s; функція eval() обробляє рядок символів і
повертає значення виразу. Поле об’єкта entry3 очищується, і до нього
виводиться результат.
def b1_click():
s = entry1.get() + '+' + entry2.get()
vidp = eval(s)
entry3.delete(0, END)
entry3.insert(0, vidp)
8. Створіть обробники події Натискання на кнопку b2_click–b5_click, вказуючи
операцію, що відповідає заголовку кнопки.
Answers & Comments
Verified answer
Ответ:
from tkinter import *
# Створення вікна
root = Tk()
root.title("Калькулятор")
root.geometry("650x50")
# Створення віджетів Label
lab1 = Label(root, text="#1", font="Arial 18")
lab1.place(x=10, y=10)
lab2 = Label(root, text="#2", font="Arial 18")
lab2.place(x=250, y=10)
lab3 = Label(root, text="=", font="Arial 18")
lab3.place(x=400, y=10)
# Створення віджету Entry для введення першого числа
entry1 = Entry(root, width=6, font="Arial 18")
entry1.place(x=55, y=10)
# Створення віджетів Entry для введення другого числа та результату
entry2 = Entry(root, width=6, font="Arial 18")
entry2.place(x=295, y=10)
entry3 = Entry(root, width=6, font="Arial 18")
entry3.place(x=445, y=10)
# Створення віджетів Button для операцій
b1 = Button(root, text="+", command=lambda: b_click("+"))
b1.place(x=150, y=10)
b2 = Button(root, text="-", command=lambda: b_click("-"))
b2.place(x=195, y=10)
b3 = Button(root, text="*", command=lambda: b_click("*"))
b3.place(x=240, y=10)
b4 = Button(root, text="/", command=lambda: b_click("/"))
b4.place(x=285, y=10)
# Обробник події для кнопки "+"
def b_click(operation):
s = entry1.get() + operation + entry2.get()
result = eval(s)
entry3.delete(0, END)
entry3.insert(0, result)
# Обробник події для кнопки "-"
def b2_click():
s = entry1.get() + "-" + entry2.get()
result = eval(s)
entry3.delete(0, END)
entry3.insert(0, result)
# Обробник події для кнопки "*"
def b3_click():
s = entry1.get() + "*" + entry2.get()
result = eval(s)
entry3.delete(0, END)
entry3.insert(0, result)
# Обробник події для кнопки "/"
def b4_click():
s = entry1.get() + "/" + entry2.get()
result = eval(s)
entry3.delete(0, END)
entry3.insert(0, result)
# Показати вікно
root.mainloop()
Объяснение:
Перевірь, напиши якщо десь помилка