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é
- Écrire une fonction
contient(L, v)renvoyantTruesivfigure dansL. - Écrire
position(L, v)renvoyant l'indice de la première occurrence dev, et sivest absente. - Écrire
positions(L, v)renvoyant la liste de toutes les positions. - Tester sur
L = [4, 7, 2, 7, 9, 7]avecv = 7, puisv = 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
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 14 autres exercices corrigés dans ce chapitre, et 23 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
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.