sujet Test 4 : Programmation objet 2

1.

Écrivez dans un fichier undo.py la classe UndoRedo telle que : l'initialisation prend deux paramètres : une liste l et un objet x. la classe contient deux méthodes : supprime() qui ne prend pas de paramètre et supprime le dernier élément de l s'il vaut x remet() qui ne prend pas de paramètre et place x comme dernier élément de la liste. Vous pourrez utiliser le fait que si l est une liste en python : l.pop() supprime le dernier élément de l et le rend. l[-1] rend le dernier élément de la liste l.

2.

En sachant que randint(1, 10) rend un entier aléatoire entre 1 et 10 détaillez avec des commentaires ce que fait le code suivant, que vous placerez dans un fichier main.py :


from random import randint

l = []
for x in range(10):
   l.append(randint(1, 10))
print(l)

sauve = []
while len(l) > 0:
   undo_redo = UndoRedo(l, l[-1])
   undo_redo.supprime()
   sauve.append(undo_redo)

print(l)

while len(sauve) > 0:
   undo_redo = sauve.pop()
   undo_redo.remet()

print(l)

3.

Faites dans le fichier undo.py un héritage de la classe list de python qui possède, outre toutes les méthodes de listes, la méthode depop() qui permet d’annuler la dernière méthode pop utilisée.