Adloun

sciences numériques et technologie (seconde) · Chapitre 6 · Exercice de TD

Chercher une valeur et sa position

Listes et simulations aléatoires · Manipuler une liste · niveau 2

Énoncé

  1. Écrire une fonction contient(L, v) renvoyant True si v figure dans L.
  2. Écrire position(L, v) renvoyant l'indice de la première occurrence de v, et si v est absente.
  3. Écrire positions(L, v) renvoyant la liste de toutes les positions.
  4. Tester sur L = [4, 7, 2, 7, 9, 7] avec v = 7, puis v = 5.

Corrigé

1., 2. et 3.

def contient(L, v):
    for x in L:
        if x == v:
            return True
    return False

def position(L, v):
    for i in range(len(L)):
        if L[i] == v:
            return i        # on sort dès la première trouvée
    return -1

def positions(L, v):
    p = []
    for i in range(len(L)):
        if L[i] == v:
            p.append(i)
    return p

4.

L = [4, 7, 2, 7, 9, 7]
print(contient(L, 7), position(L, 7), positions(L, 7))   # True 1 [1, 3, 5]
print(contient(L, 5), position(L, 5), positions(L, 5))   # False -1 []

Trois points de méthode.

Le return False de contient est hors de la boucle : on ne peut conclure à l'absence qu'après avoir tout parcouru. Placé dans la boucle, il ferait répondre False dès le premier élément différent.

Les deux dernières fonctions parcourent par indice, car c'est la position que l'on cherche — c'est le cas où for x in L ne suffit pas.

Enfin, position s'arrête à la première occurrence, alors que positions va jusqu'au bout. La valeur pour « absent » est une convention répandue : elle ne peut être confondue avec aucun indice valide, puisque ceux-ci sont positifs — mais il faut penser à la tester, car L[-1] reste une écriture licite qui désignerait le dernier élément.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →