4

Sur les fonctions suivantes, déterminer "assert" à mettre en oeuvre pour tester ces fonctions et en commentaire les raisons expliquant pourquoi certains tests vont échouer

1
def echange_v1(liste):
2
    """modifie la liste, la met dans l'ordre inverse"""
3
    n=len(liste)
4
    for i in range(n):
5
        liste[i], liste[n-1-i] = liste[n-1-i], liste[i]

#les éléments de la liste sont échangés 2 fois : la liste est inchangée

1
def echange_v2(liste):
2
    """modifie la liste, la met dans l'ordre inverse"""
3
    n=len(liste)
4
    for i in range(n//2):
5
        liste[i]=liste[n-1-i]
6
        liste[n-1-i]=liste[i]

# des éléments de la liste sont perdus : liste[n-1-i] ne change pas de valeur (2 lignes...)

1
def ajoutUnListe(liste):
2
    """modifie la liste, ajoute 1 à chacun des termes"""
3
    n= len(liste)
4
    for i in range(1, n+1):
5
        liste[i] = liste[i]+1

# erreur on sort de la liste, l'indice n n'existe pas