Calculatrice Python

Commencer


Bonjour, dans l'article précédent, j'ai montré comment faire un jeu en python , et maintenant nous regardons comment faire une simple calculatrice en python tkinter .



Créez une fenêtre de 485 par 550. Les dimensions ne sont pas importantes, j'ai aimé celles-ci. Nous indiquons également que la fenêtre ne sera pas modifiée.



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() 

Super, continue.


Faire des boutons


Dans la méthode de génération , créez la liste suivante:


 btns = [ "C", "DEL", "*", "=", "1", "2", "3", "/", "4", "5", "6", "+", "7", "8", "9", "-", "+/-", "0", "%", "X^2" ] 


Il est responsable de tous les boutons qui apparaissent dans notre fenêtre.


Nous avons créé la liste, maintenant nous parcourons la boucle et affichons ces boutons. Pour ce faire, dans la même méthode, écrivez ce qui suit:



 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 


Super, nous avons des boutons. Ajoutez l'inscription avec la sortie. Je veux que le texte soit à gauche, par conséquent, les attributs d'alignement du texte n'ont pas besoin d'être écrits.



 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) 


Logique d'écriture



 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) 


Donc, comme nous n'avons pas de saisie au clavier, nous pouvons nous le permettre, il suffit de vérifier les offres spéciales. boutons (C, DEL, =) et dans d'autres cas, ajoutez simplement ceci à la formule.



Cette calculatrice a de nombreuses lacunes, mais nous n'avons pas essayé de la rendre idéale.



Je m'excuse pour les erreurs dans l'article. Écrivez, je vais corriger.


Code complet de ma version de la calculatrice:


 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() 

Source: https://habr.com/ru/post/fr481074/


All Articles