Positifs de pile

Cet exercice utilise des piles qui seront représentées en Python par des listes (type list).

On rappelle que l’expression liste_1 = list(liste) fait une copie de listeindépendante de liste, que l’expression x = liste.pop() enlève le sommet de la pile liste et le place dans la variable x et, enfin, que l’expression liste.append(v) place la valeur v au sommet de la pile liste.

Compléter le code Python de la fonction positif ci-dessous qui prend une pile de nombres entiers en paramètre et qui renvoie la pile des entiers positifs dans le même ordre, sans modifier la variable pile.

Exemple

🐍 Console Python
>>> positif([-1, 0, 5, -3, 4, -6, 10, 9, -8])
[0, 5, 4, 10, 9]
>>> positif([-2])
[]
Compléter ci-dessous

###
# Testsbksl-nlassert positif([-1, 0, 5, -3, 4, -6, 10, 9, -8]) == [0, 5, 4, 10, 9]bksl-nlassert positif([-2]) == []bksl-nlbksl-nl# Autrespy-undtestsbksl-nlpilepy-und3 = [i for i in range(100,-100, -1)]bksl-nlassert positif(pilepy-und3) == [i for i in range(100, -1, -1)]bksl-nlpilepy-und4 = [ipy-str(-1)py-strpy-stri for i in range(100)]bksl-nlassert positif(pilepy-und4) == [2py-stri for i in range(50)]bksl-nlbksl-nl 5/5
def positif(pile):bksl-nl pilepy-und1 = ...(pile)bksl-nl pilepy-und2 = ...bksl-nl while pilepy-und1 != []:bksl-nl x = ...bksl-nl if ... >= 0:bksl-nl pilepy-und2.append(...)bksl-nl while pilepy-und2 != ...:bksl-nl x = pilepy-und2.pop()bksl-nl ...bksl-nl return pilepy-und1bksl-nlbksl-nldef positif(pile):bksl-nl pilepy-und1 = list(pile)bksl-nl pilepy-und2 = []bksl-nl while pilepy-und1 != []:bksl-nl x = pilepy-und1.pop()bksl-nl if x >= 0:bksl-nl pilepy-und2.append(x)bksl-nl while pilepy-und2 != []:bksl-nl x = pilepy-und2.pop()bksl-nl pilepy-und1.append(x)bksl-nl return pilepy-und1bksl-nlbksl-nlbksl-nlbksl-nl