|
@ -1,3 +1,14 @@ |
|
|
|
|
|
# Programme non fonctionnel (indentation incohérente). |
|
|
|
|
|
# Aucune documentation. |
|
|
|
|
|
# Tu n'utilises pas du tout la classe Expression, et (donc) ta calculatrice |
|
|
|
|
|
# ne gère pas la notation polonaise : ce n'est pas ce qui était demandé. |
|
|
|
|
|
# La méthode __str__ ne respecte pas les priorités. |
|
|
|
|
|
# La fonction (ou méthode, ça dépend de l'erreur d'indentation), n'est pas |
|
|
|
|
|
# utilisée, et ne gère pas les erreurs. |
|
|
|
|
|
# Le code pourrait être largement factorisé! |
|
|
|
|
|
|
|
|
|
|
|
# Note : 5 / 10 |
|
|
|
|
|
|
|
|
class Expression: |
|
|
class Expression: |
|
|
def __init__(self, valeur, gauche=None, droit=None): |
|
|
def __init__(self, valeur, gauche=None, droit=None): |
|
|
self.valeur = valeur |
|
|
self.valeur = valeur |
|
@ -18,7 +29,7 @@ class Expression: |
|
|
else: |
|
|
else: |
|
|
return str(self.valeur) |
|
|
return str(self.valeur) |
|
|
|
|
|
|
|
|
def npi2tree(expression_npi): |
|
|
def npi2tree(expression_npi): |
|
|
pile = [] |
|
|
pile = [] |
|
|
for element in expression_npi: |
|
|
for element in expression_npi: |
|
|
if element in ['+', '*']: |
|
|
if element in ['+', '*']: |
|
|