Comparaisons d'éléments⚓︎
Attention à l'arrêt
Pour les fonctions suivantes, il faut parcourir les listes en comparant les valeurs deux à deux. Il faut faire attention aux valeurs données en paramètres pour range
:
Exercice 18 : valeurs_consecutives_egales(nombres)
Compléter le code de la fonction valeurs_consecutives_egales
qui prend en paramètre une liste d'entiers nombres
et renvoie True
si deux entiers consécutifs sont égaux et False
sinon.
Indices
Indice 1
Il faut comparer nombres[i]
et nombres[i+1
, où i
est la variable de boucle.
Indice 2
Si on utilise range(len(nombres))
, on obtient une jolie erreur parce qu'on essaie de comparer nombres[len(nombres)-1]
et nombres[len(nombres)]
. Or ce dernier n'existe pas.
Peut-être qu'il faut s'arrêter un peu plus tôt...
Indice 3
Il faut utiliser range(len(nombres)-1)
.
>>> valeurs_consecutives_egales([5, 3, 5]) # les deux 5 ne se suivent pas directement
False
>>> valeurs_consecutives_egales([3, 5, 5])
True
>>> valeurs_consecutives_egales([3])
False
# Tests
(insensible à la casse)(Ctrl+I)
Exercice 19 : deux_entiers_consecutifs(nombres)
Compléter le code de la fonction deux_entiers_consecutifs
qui prend en paramètre une liste d'entiers nombres
et renvoie la liste des couples d'entiers consécutifs qui se suivent dans la liste.
>>> deux_entiers_successifs([3, 4]) # 3 et 4 sont des entiers consécutifs
[(3, 4)]
>>> deux_entiers_successifs([1, 3, 4, 2])
[(3, 4)]
>>> deux_entiers_successifs([1, 3, 7, 4, 2]) # 3 et 4, et 1 et 2 ne se suivent pas
[]
>>> deux_entiers_successifs([4, 3, 2, 1]) # les entiers ne sont pas dans le bon ordre
[]
>>> deux_entiers_successifs([1, 2, 3])
[(1, 2), (2, 3)]
# Tests
(insensible à la casse)(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)
Exercice 20 : palindrome(texte)
Un palindrome est un texte qui peut se lire de la même manière dans les deux sens, comme kayak.
Compléter le code de la fonction palindrome
qui prend en paramètre une chaîne de caractères texte
et renvoie True
si le texte est un palindrome et False
sinon.
Indices
Indice 1
Si on suppose que texte
a n
caractères, alors les indices des symboles de texte
sont :
caractère | de gauche à droite | de droite à gauche |
---|---|---|
premier | 0 | n-1 |
deuxième | 1 | n-2 |
troisième | 2 | n-3 |
... | ... | ... |
avant-dernier | n-2 | 1 |
dernier | n-1 | 0 |
Indice 2
Si on parcourt de gauche à droite avec un indice de boucle i
, alors les indices des symboles devant se correspondre sont :
premier symbole | deuxième symbole | i |
---|---|---|
0 | n-1 | 0 |
1 | n-2 | 1 |
2 | n-3 | 2 |
... | ... | |
n-2 | 1 | n-2 |
n-1 | 0 | n-1 |
Indice 3
Le symbole d'indice i
correspond au symbole d'indice n-1-i
.
>>> palindrome("kayak")
True
>>> palindrome("ABBA")
True
>>> palindrome("chateauaetahc")
True
>>> palindrome("kay ak")
False
>>> palindrome("abcd")
False
# Tests
(insensible à la casse)(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)
# Tests
(insensible à la casse)(Ctrl+I)