From 8b723c77703eb3cfad29b15dc55e72efae56af2a Mon Sep 17 00:00:00 2001 From: erika <> Date: Tue, 28 Jan 2025 15:17:04 +0100 Subject: [PATCH] suite2 --- calculette.py | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/calculette.py b/calculette.py index dc5c0c3..36fbcb8 100644 --- a/calculette.py +++ b/calculette.py @@ -4,7 +4,6 @@ from Pile import Pile_chaine as Pile class Expression: def __init__(self, valeur, gauche=None, droite=None): - self.valeur = valeur self.gauche = gauche self.droite = droite @@ -18,20 +17,44 @@ class Expression: return self.gauche.evalue() + self.droite.evalue() if self.valeur == '*': return self.gauche.evalue() * self.droite.evalue() + if self.valeur == '/': + return self.gauche.evalue() / self.droite.evalue() + if self.valeur == '-': + return self.gauche.evalue() - self.droite.evalue() + def __str__(self): if type(self.valeur) == int: return str(self.valeur) - else : - return "({str(self.gauche)} {self.valeur} {str(self.droite)})" + if self.valeur == '+': + return "("+ str (self.gauche) + "+" + str (self.droite) + ")" + if self.valeur == '*': + return "("+ str (self.gauche) + "*" + str (self.droite) + ")" + if self.valeur == '/': + return "("+ str (self.gauche) + "/" + str (self.droite) + ")" + if self.valeur == '-': + return "("+ str (self.gauche) + "-" + str (self.droite) + ")" + + +if __name__ =="__main__": + e = Expression('*', + Expression(6, None, None), + Expression('+', + Expression(4, None, None), + Expression(3, None, None) + ) + ) + + + class Conversion: lst = [self.valeur,self.gauche, self.droite] def npi2tree (lst): """fonction npi2tree prenant en paramètre une liste correspondant à l’expression en notation - polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" - p = Pile(lst) - # for i in lst (): + polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" + p = Pile(lst) + for i in lst (): # if + or * :