From 2a0b98a318fb324c1e38c5b05977415889defa3c Mon Sep 17 00:00:00 2001 From: RASCHELLA Bastien Date: Mon, 2 Mar 2026 14:20:01 +0100 Subject: [PATCH] modif rapide --- expression.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/expression.py b/expression.py index d354d3d..9880d91 100644 --- a/expression.py +++ b/expression.py @@ -8,21 +8,25 @@ class Expression: self.gauche = gauche self.droit = droit + def est_nombre(self): + return self.gauche is None and self.droit is None + def evalue(self): "renvoie la valeur de l'expression" - if self.gauche == None and self.droit == None: - return self.racine - if self.racine == '*': + + if self.est_nombre(): + return float(self.racine) + + elif self.racine == '*': return self.gauche.evalue() * self.droit.evalue() - if self.racine == '+': + elif self.racine == '+': return self.gauche.evalue() + self.droit.evalue() - if self.racine == '-': + elif self.racine == '-': return self.gauche.evalue() - self.droit.evalue() - if self.racine == '/': + elif self.racine == '/': return self.gauche.evalue() / self.droit.evalue() - - def racine_carre(self): - return math.sqrt(self.racine) + else: + raise ValueError("symbole inconnue") def __str__(self): "affiche l'expression" @@ -47,7 +51,7 @@ def npi2tree(lst): p.empiler(exp) else : if elem != None: - p.empiler(Expression(int(elem), None, None)) + p.empiler(Expression(elem, None, None)) return p.sommet() @@ -60,4 +64,5 @@ if __name__ == "__main__": print(exp.evalue()) print(exp) e = npi2tree([-6, 4, 3, "+", "-"]) + print(e) print(e.evalue()) \ No newline at end of file