рд╢реБрд░реБрдЖрдд
рдирдорд╕реНрдХрд╛рд░, рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЕрдЬрдЧрд░ рдореЗрдВ рдПрдХ рдЦреЗрд▓ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЬрдЧрд░ рдЯрд┐рдХреНрдХрди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
550 рд╡рд┐рдВрдбреЛ рджреНрд╡рд╛рд░рд╛ 485 рдмрдирд╛рдПрдВ рдЖрдпрд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рдпреЗ рдкрд╕рдВрдж рдЖрдпрд╛ред рд╣рдо рдпрд╣ рднреА рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
from tkinter import * class Main(Frame): def __init__(self, root): super(Main, self).__init__(root) self.build() def build(self): pass def logicalc(self, operation): pass def update(): pass if __name__ == '__main__': root = Tk() root["bg"] = "#000" root.geometry("485x550+200+200") root.title("") root.resizable(False, False) app = Main(root) app.pack() root.mainloop()
рдорд╣рд╛рди, рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдмрдЯрди рдмрдирд╛рдУ
рдмрд┐рд▓реНрдб рд╡рд┐рдзрд┐ рдореЗрдВ, рдирд┐рдореНрди рд╕реВрдЪреА рдмрдирд╛рдПрдВ:
btns = [ "C", "DEL", "*", "=", "1", "2", "3", "/", "4", "5", "6", "+", "7", "8", "9", "-", "+/-", "0", "%", "X^2" ]
рд╡рд╣ рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд╣рдордиреЗ рд╕реВрдЪреА рдмрдирд╛рдИ, рдЕрдм рд╣рдо рд▓реВрдк рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рдмрдЯрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рд╡рд┐рдзрд┐ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
x = 10 y = 140 for bt in btns: com = lambda x=bt: self.logicalc(x) Button(text=bt, bg="#FFF", font=("Times New Roman", 15), command=com).place(x=x, y=y, width=115, height=79) x += 117 if x > 400: x = 10 y += 81
рдорд╣рд╛рди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрдЯрди рд╣реИрдВред рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдЬреЛрдбрд╝реЗрдВред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рда рдмрд╛рдИрдВ рдУрд░ рд╣реЛ, рдЗрд╕рд▓рд┐рдП, рдкрд╛рда рд╕рдВрд░реЗрдЦрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
self.formula = "0" self.lbl = Label(text=self.formula, font=("Times New Roman", 21, "bold"), bg="#000", foreground="#FFF") self.lbl.place(x=11, y=50)
рддрд░реНрдХ рд▓рд┐рдЦрдирд╛
def logicalc(self, operation): if operation == "C": self.formula = "" elif operation == "DEL": self.formula = self.formula[0:-1] elif operation == "X^2": self.formula = str((eval(self.formula))**2) elif operation == "=": self.formula = str(eval(self.formula)) else: if self.formula == "0": self.formula = "" self.formula += operation self.update() def update(self): if self.formula == "": self.formula = "0" self.lbl.configure(text=self.formula)
рдЗрд╕рд▓рд┐рдП, рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рд╡рд┐рд╢реЗрд╖ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдмрдЯрди (C, DEL, =) рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕реЗ рд╕реВрддреНрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
рдЗрд╕ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдореЗрдВ рдХрдИ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕реЗ рдЖрджрд░реНрд╢ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред
рд▓реЗрдЦ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рд▓рд┐рдЦреЛ, рдореИрдВ рд╕рд╣реА рдХрд░ рджреВрдВрдЧрд╛
рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб:
from tkinter import * class Main(Frame): def __init__(self, root): super(Main, self).__init__(root) self.build() def build(self): self.formula = "0" self.lbl = Label(text=self.formula, font=("Times New Roman", 21, "bold"), bg="#000", foreground="#FFF") self.lbl.place(x=11, y=50) btns = [ "C", "DEL", "*", "=", "1", "2", "3", "/", "4", "5", "6", "+", "7", "8", "9", "-", "(", "0", ")", "X^2" ] x = 10 y = 140 for bt in btns: com = lambda x=bt: self.logicalc(x) Button(text=bt, bg="#FFF", font=("Times New Roman", 15), command=com).place(x=x, y=y, width=115, height=79) x += 117 if x > 400: x = 10 y += 81 def logicalc(self, operation): if operation == "C": self.formula = "" elif operation == "DEL": self.formula = self.formula[0:-1] elif operation == "X^2": self.formula = str((eval(self.formula))**2) elif operation == "=": self.formula = str(eval(self.formula)) else: if self.formula == "0": self.formula = "" self.formula += operation self.update() def update(self): if self.formula == "": self.formula = "0" self.lbl.configure(text=self.formula) if __name__ == '__main__': root = Tk() root["bg"] = "#000" root.geometry("485x550+200+200") root.title("") root.resizable(False, False) app = Main(root) app.pack() root.mainloop()