diff --git a/Calc.py b/Calc.py index 2269cd4..9f3661f 100644 --- a/Calc.py +++ b/Calc.py @@ -1,13 +1,17 @@ import tkinter as tk from Pile import Pile_chaine +import random class Expression: + """Implémentation d'une expression mathématique dans un arbre binaire""" def __init__(self, valeur, gauche, droit): + """Crée un arbre binaire vide""" self.valeur = valeur self.gauche = gauche self.droit = droit def evalue(self): + """Calcule l'expression mathématique d'un arbre binaire""" if self.valeur == '+': self.valeur = self.gauche.evalue() + self.droit.evalue() if self.valeur == '*': @@ -15,6 +19,7 @@ class Expression: return self.valeur def __str__(self): + """Affiche l'expression mathématique d'un arbre binaire""" if self.gauche is None and self.droit is None: return str(self.valeur) expr = "" @@ -33,6 +38,7 @@ class Expression: def npi2tree(ch): + """Convertit une expression en notation polonaise inversée à un arbre binaire""" ch = ch.split() Expr = Pile_chaine() for elmt in ch: @@ -44,12 +50,25 @@ def npi2tree(ch): return Expr.sommet() def calculer(): + """Affiche l'expression ainsi que son résultat dans l'interface Tkinter""" + déception = ["Peut mieux faire.", + "Va t'entraîner, t'es nul...", + "Ah nan, tu pues vraiment.", + "Skill issue.", + "Je souhaite que tu arrêtes tout.", + "Il a eu 0/20", + "Apprends à lire.", + "Arrête de déconner.", + "Abandonne au pire.", + "42", + "Va faire un tour dehors." + ] expression = entry.get() try: resultat = npi2tree(expression).evalue() - result_label.config(text="Résultat: " + str(resultat)) - except Exception as erreur: - result_label.config(text="Erreur: " + str(erreur)) + result_label.config(text="Résultat: " + str(npi2tree(expression)) + " = " + str(resultat)) + except: + result_label.config(text=random.choice(déception)) root = tk.Tk() root.title("Calculatrice rudimentaire")