Browse Source

modif rapide

master
RASCHELLA Bastien 2 months ago
parent
commit
2a0b98a318
  1. 25
      expression.py

25
expression.py

@ -8,21 +8,25 @@ class Expression:
self.gauche = gauche self.gauche = gauche
self.droit = droit self.droit = droit
def est_nombre(self):
return self.gauche is None and self.droit is None
def evalue(self): def evalue(self):
"renvoie la valeur de l'expression" "renvoie la valeur de l'expression"
if self.gauche == None and self.droit == None:
return self.racine if self.est_nombre():
if self.racine == '*': return float(self.racine)
elif self.racine == '*':
return self.gauche.evalue() * self.droit.evalue() return self.gauche.evalue() * self.droit.evalue()
if self.racine == '+': elif self.racine == '+':
return self.gauche.evalue() + self.droit.evalue() return self.gauche.evalue() + self.droit.evalue()
if self.racine == '-': elif self.racine == '-':
return self.gauche.evalue() - self.droit.evalue() return self.gauche.evalue() - self.droit.evalue()
if self.racine == '/': elif self.racine == '/':
return self.gauche.evalue() / self.droit.evalue() return self.gauche.evalue() / self.droit.evalue()
else:
def racine_carre(self): raise ValueError("symbole inconnue")
return math.sqrt(self.racine)
def __str__(self): def __str__(self):
"affiche l'expression" "affiche l'expression"
@ -47,7 +51,7 @@ def npi2tree(lst):
p.empiler(exp) p.empiler(exp)
else : else :
if elem != None: if elem != None:
p.empiler(Expression(int(elem), None, None)) p.empiler(Expression(elem, None, None))
return p.sommet() return p.sommet()
@ -60,4 +64,5 @@ if __name__ == "__main__":
print(exp.evalue()) print(exp.evalue())
print(exp) print(exp)
e = npi2tree([-6, 4, 3, "+", "-"]) e = npi2tree([-6, 4, 3, "+", "-"])
print(e)
print(e.evalue()) print(e.evalue())
Loading…
Cancel
Save