def positif(pile):
	pile_1 = list(pile)
	pile_2 = list()
	while pile_1 != []:
		x = pile_1.pop()
		if x >= 0:
			pile_2.append(x)
	while pile_2 != []:
		x = pile_2.pop()
		pile_1.append(x)
	return pile_1

positif([-1, 0, 5, -3, 4, -6, 10, 9, -8]) # [0, 5, 4, 10, 9]
positif([-2]) #[]


class Pile:
	"""
	Classe définissant une structure de pile.
	"""
	def __init__(self):
		self.contenu = []
		
	def est_vide(self):
		"""
		Renvoie le booléen True si la pile est vide, False sinon.
		"""
		return self.contenu == []

	def empiler(self, v):
		"""
		Place l’élément v au sommet de la pile.
		"""
		self.contenu.append(v)

	def depiler(self):
		"""
		Retire et renvoie l’élément placé au sommet de la pile,
		si la pile n’est pas vide.
		"""
		if not self.est_vide():
			return self.contenu.pop()

def eval_expression(tab):
	p = Pile()
	for element in tab:
		if element != '+' and element != '*':
			p.empiler(element)
		else:
			if element == '+':
				resultat = p.depiler() + p.depiler()
			else:
				resultat = p.depiler() * p.depiler()
			p.empiler(resultat)
	return p.depiler()

print(eval_expression([2, 3, '+', 5, '*'])) #25