Tester si un nombre est palindromique⚓︎
Un mot palindrome peut se lire de la même façon de gauche à droite ou de droite à
gauche : 'esse'
, 'radar'
, et 'non'
sont des mots palindromes.
De même certains nombres sont eux-aussi palindromiques : \(33\), \(121\), \(345543\).
L'objectif de cet exercice est d'obtenir un programme Python permettant de tester si un nombre est palindromique, quand sa représentation décimale est un palindrome.
Pour remplir cette tâche, on vous demande de compléter le code des trois fonctions ci-dessous sachant que la fonction est_palindromique
s'appuiera sur la fonction est_palindrome
qui elle-même s'appuiera sur la fonction inverse_chaine
.
La fonction inverse_chaine
inverse l'ordre des caractères d'une chaine de caractères chaine
et renvoie la chaine inversée.
La fonction est_palindrome
teste si une chaine de caractères chaine
est un
palindrome. Elle renvoie True
si c'est le cas et False
sinon. Cette fonction s'appuie sur la fonction précédente.
La fonction est_palindromique
teste si un nombre nombre
est palindromique. Elle renvoie True
si c'est le cas et False
sinon. Cette fonction s'appuie sur la fonction précédente.
Exemples
>>> inverse_chaine('bac')
'cab'
>>> est_palindrome('NSI')
False
>>> est_palindrome('ISN-NSI')
True
>>> est_palindromique(214312)
False
>>> est_palindromique(213312)
True
Compléter le code des trois fonctions ci-dessous.
def inversepy-undchaine(chaine):bksl-nl resultat = ...bksl-nl for caractere in chaine:bksl-nl resultat = ...bksl-nl return resultatbksl-nlbksl-nldef estpy-undpalindrome(chaine):bksl-nl inverse = inversepy-undchaine(chaine)bksl-nl return ...bksl-nlbksl-nldef estpy-undpalindromique(nombre):bksl-nl chaine = ...bksl-nl return estpy-undpalindrome(chaine)bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert inversepy-undchaine('bac') == 'cab'bksl-nlbksl-nlassert not estpy-undpalindrome('NSI')bksl-nlbksl-nlassert estpy-undpalindrome('ISN-NSI')bksl-nlbksl-nlassert not estpy-undpalindromique(214312)bksl-nlbksl-nlassert estpy-undpalindromique(213312)bksl-nlbksl-nldef inversepy-undchaine(chaine):bksl-nl resultat = ""bksl-nl for caractere in chaine:bksl-nl resultat = caractere + resultatbksl-nl return resultatbksl-nlbksl-nldef estpy-undpalindrome(chaine):bksl-nl inverse = inversepy-undchaine(chaine)bksl-nl return chaine == inversebksl-nlbksl-nldef estpy-undpalindromique(nombre):bksl-nl chaine = str(nombre)bksl-nl return estpy-undpalindrome(chaine)bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert inversepy-undchaine('bac') == 'cab'bksl-nlbksl-nlassert not estpy-undpalindrome('NSI')bksl-nlbksl-nlassert estpy-undpalindrome('ISN-NSI')bksl-nlbksl-nlassert not estpy-undpalindromique(214312)bksl-nlbksl-nlassert estpy-undpalindromique(213312)bksl-nlbksl-nl
A
Z