In [3]:
def echange(liste, indice1, indice2):
    """
    liste -- liste d'entiers
    indice1 -- indice d'un élément de liste
    indice2 -- indice d'un élément de liste
    
    échange les valeurs de liste[indice1] et liste[indice2]
    (fonction à effet de bord, ne renvoie rien)
    """
    liste[indice1], liste[indice2] = liste[indice2], liste[indice1]
In [4]:
a = [2, 3, 4, 5]
In [5]:
echange(a, 0, 1)
In [6]:
a
Out[6]:
[3, 2, 4, 5]

Le contenu de la liste a a été modifiée (mais le conteneur est toujours le même): on a modifié le contenu de la bouteille.

La fonction est une fonction à effet de bord: elle a modifié une variable définie en dehors d'elle-même.

In [ ]: