Outils pour utilisateurs

Outils du site


prog:python:palindrome

Ceci est une ancienne révision du document !


Variations autour du palindrome

Fichier

"""
 
Variations autour du palindrome
JBP - 03/2019
 
"""
 
 
def nettoyage(phrase):
    # Fonction de nettoyage d'une chaîne de caractères :
    # Supprime les caractères inutiles, passe en minuscules
    # Remplace les caractères accentués par le caractère correspondant
    phrase = phrase.replace(" ", "")
    phrase = phrase.replace("'", "")
    phrase = phrase.replace(",", "")
    phrase = phrase.replace(";", "")
    phrase = phrase.replace(":", "")
    phrase = phrase.replace("!", "")
    phrase = phrase.replace("?", "")
    phrase = phrase.replace(".", "")
    phrase = phrase.replace("-", "")
    phrase = phrase.lower()
    phrase = phrase.replace("é", "e")
    phrase = phrase.replace("è", "e")
    phrase = phrase.replace("ê", "e")
    phrase = phrase.replace("ë", "e")
    phrase = phrase.replace("à", "a")
    phrase = phrase.replace("â", "a")
    phrase = phrase.replace("î", "i")
    phrase = phrase.replace("ï", "i")
    phrase = phrase.replace("ô", "o")
    phrase = phrase.replace("ù", "u")
    phrase = phrase.replace("û", "u")
    phrase = phrase.replace("ü", "u")
    phrase = phrase.replace("ç", "c")
    return phrase
 
ph = input("Phrase : ")
ph = nettoyage(ph)
print ("Phrase nettoyée :",ph)
i = 0
long = len(ph)
 
 
# Méthode 1 : parcours classique de la chaîne
while i<long/2:
    if (ph[i] == ph[long-1-i]):
        pal = True
    else:
        pal = False
        break
    i=i+1
 
if pal:
    print ("Palindrome")
else:
    print ("Pas palindrome")
 
# Méthode 2 : parcours de la chaîne, notation plus python
while i<long/2:
    if (ph[i] == ph[-1-i]):
        pal = True
    else:
        pal = False
        break
    i=i+1
 
if pal:
    print ("Palindrome")
else:
    print ("Pas palindrome")
 
# Méthode 3 : comparaison de la chaîne et de son miroir, encore plus python
ph2 = ph[::-1]
if ph2 == ph:
    print ("Palindrome")
else:
    print ("Pas palindrome")
 
# Méthode 4 : fonction récursive
def palindrome (phrase):
    if phrase[0] == phrase[-1]:
        pal = True
        if len(phrase) > 2:
            pal = palindrome (phrase[1:-1])
    else:
        pal = False
    return pal
 
if palindrome(ph):
    print ("Palindrome")
else:
    print ("Pas palindrome")
prog/python/palindrome.1586164553.txt.gz · Dernière modification : 2020/04/06 09:15 de jbpuel