[python] palindrome [Fermé]

Signaler
-
 darkawi -
Bonjour,

j'essai de trouver le moyen de faire reconnaitre un palindrome entré au clavier mais je bloque

Il me semble qu'il y a une commande python pour automatiser le processus mais je n'arrive pas a la trouver.

je suis donc preneur d'une aide.

En vous en remerciant par avance

Laurent

2 réponses

Messages postés
8896
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 441
Salut,

Avec les chaines de caractère en python tu peux faire des opérations avec les crochets []
Ca s'appele du slicing si je ne m'abuse.
On fait comme ça:
chaine[debut, longueur, pas]

Le pas sert à determiner tout les combien de caractères on selectionne.
exemple:
>>> a="truc"
>>> a[::2]
'tu'

On a affiché truc tous les deux caractères.

Maintenant si on met une valeur négative pour le pas, il selectionnera tout les n caractères mais à l'envers.
Donc pour avoir une chaine à l'envers:
>>> a="truc"
>>> a[::-1]
'curt'


Donc un palindrome parfait répondra vrai à ce test:
chaine1 == chaine1[::-1]


Mais il ya des palindromes en phrases, là on ne tiens pas compte des espaces.
Exemple:
>>> a="esope reste et se repose"
>>> a.replace(" ", "") == a.replace(" ", "")[::-1]
True

Et voilà :-)
"Donc un palindrome parfait répondra vrai à ce test:
chaine1 == chaine1[::-1] "

Petite correction , il faut transcrire le brin que tu as renversé avant de le comparer aux brin sens:

# j'utilie dans le cas présent python 3.2
code_transcription=bytes.maketrans(b"atgc",b"tacg") # ici on établit le code de transcription a->t...

#vous renversez et transcrivez le brin selon le code de transcription.
brin_complementaire=chaine1[::-1].translate(code_transcription)

#vérifiez si c'est un palindrome.

if chaine1 == brin_complementaire :
print("il s'agit d'un palindrome")
else:
print("il ne s'agit pas d'un palindrome")
merci beaucoup

Je vais voir ce que je peux faire avec toutes ces bonnes informations.

laurent
Bonjour.
Je suis dans le même cas que Laurent. Je dois trouver une formule qui me trouve tous les palindromes dans un texte donné. Je sais trouver un palindrome avec une chaine de UN mot, mais dans un texte, je ne sais pas comment faire.
Pouvez-vous m'aider?

Merci d'avance.
Bonnes fêtes =)