import operator
from pile import Pile

def npi(expression):
    """
    Calcule une expression en notation polonaise inverse
    ParamÃ¨tre:
        une liste
    Par exemple, npi([3,4,"+",5,"*"]) retourne 35
    """
    operations = {
    '+' :  operator.add, '-' :  operator.sub,
    '*' :  operator.mul, '/' :  operator.floordiv
    }
        
    pile = Pile()
    
    for e in expression:
        if type(e) == ..... :
            pile. ......(e)
        else:
            op1 = pile. ......()
            op2 = pile. ......()
            result = operations[e](op2, op1)
            pile. .......(result)
    return result