Aller au contenu

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.

Compléter le code des trois fonctions ci-dessous.

🐍 Script Python
def inverse_chaine(chaine):
    resultat = ...
    for caractere in chaine:
        resultat = ...
    return resultat

def est_palindrome(chaine):
    inverse = inverse_chaine(chaine)
    return ...

def est_palindromique(nombre):
    chaine = ...
    return est_palindrome(chaine)

Exemples

🐍 Console Python
>>> inverse_chaine('bac')
'cab'
>>> est_palindrome('NSI')
False
>>> est_palindrome('ISN-NSI')
True
>>> est_palindromique(214312)
False
>>> est_palindromique(213312)
True
###
# 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-nlbksl-nl# autres testsbksl-nlbksl-nlbksl-nlassert inversepy-undchaine('azerty') == 'ytreza'bksl-nlassert inversepy-undchaine('azerty0') == '0ytreza'bksl-nlbksl-nlassert not estpy-undpalindrome('AZERTY')bksl-nlassert not estpy-undpalindrome('AZERTY0')bksl-nlbksl-nlassert estpy-undpalindrome('ABCTCBA')bksl-nlassert estpy-undpalindrome('ABCDDCBA')bksl-nlbksl-nlassert not estpy-undpalindromique(132213)bksl-nlassert not estpy-undpalindromique(1327213)bksl-nlbksl-nlassert estpy-undpalindromique(122345543221)bksl-nlassert estpy-undpalindromique(1223457543221)bksl-nlbksl-nlbksl-nl 5/5

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-nlNone

A

Z

Retour en haut de la page