Здравствуйте. Практикуюсь на python-е. На данный момент пытаюсь написать калькулятор в tkinter. Подскажите, как после нажатия кнопки операции(+, -, /, *) введенное раннее число хранилось в переменной и этот число продвинулся выше и изменил свет с черного на серый а под ней появился знак выбранной операции, наконец, ниже можно было бы набрать число которая должно быть вычтено, сложено и т.д. Заранее благодарю за выделенное время. Весь скрипт ниже
import tkinter as tk
def add_digit_to_lbl(digit):
text = label["text"]
label.configure(text=f"{text}"+str(digit))
window = tk.Tk()
entry_frame = tk.Frame()
label = tk.Label(master=entry_frame, width=30, height=5,
relief=tk.SUNKEN, borderwidth=5, anchor="se")
entry_frame.pack()
label.pack()
keys_frame = tk.Frame()
keys_frame.columnconfigure([i for i in range(4)], minsize=20)
keys_frame.rowconfigure([i for i in range(5)], minsize=10)
keys_frame.pack()
clear_btn = tk.Button(text="C", master=keys_frame, width=7,
command=lambda: label.delete(0, tk.END))
clear_btn.grid(column=0, row=0, ipady=15)
power_btn = tk.Button(text="^", master=keys_frame, width=7)
power_btn.grid(column=1, row=0, ipady=15)
addition_btn = tk.Button(text="+", master=keys_frame, width=7)
addition_btn.grid(column=2, row=0, ipady=15)
deduction_btn = tk.Button(text="-", master=keys_frame, width=7)
deduction_btn.grid(column=3, row=0, ipady=15)
one_btn = tk.Button(text="1", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(1))
one_btn.grid(column=0, row=1, ipady=15)
two_btn = tk.Button(text="2", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(2))
two_btn.grid(column=1, row=1, ipady=15)
three_btn = tk.Button(text="3", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(3))
three_btn.grid(column=2, row=1, ipady=15)
division_btn = tk.Button(text="/", master=keys_frame, width=7)
division_btn.grid(column=3, row=1, ipady=15)
four_btn = tk.Button(text="4", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(4))
four_btn.grid(column=0, row=2, ipady=15)
five_btn = tk.Button(text="5", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(5))
five_btn.grid(column=1, row=2, ipady=15)
six_btn = tk.Button(text="6", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(6))
six_btn.grid(column=2, row=2, ipady=15)
multiplication_btn = tk.Button(text="*", master=keys_frame, width=7)
multiplication_btn.grid(column=3, row=2, ipady=15)
seven_btn = tk.Button(text="7", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(7))
seven_btn.grid(column=0, row=3, ipady=15)
eight_btn = tk.Button(text="8", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(8))
eight_btn.grid(column=1, row=3, ipady=15)
nine_btn = tk.Button(text="9", master=keys_frame, width=7,
command=lambda: add_digit_to_lbl(9))
nine_btn.grid(column=2, row=3, ipady=15)
equality_btn = tk.Button(text="=", master=keys_frame, width=7)
equality_btn.grid(column=3, row=3, ipady=15)
window.mainloop()
P.S.
Как вы видите, объявление баттонов, их вывод на экран и их команды повторяются и занимают много места, я думаю что их можно упростить циклами, но не знаю как, можете что-то посоветовать и насчет этого?