prog:palindrome
Ceci est une ancienne révision du document !
Variations autour du palindrome
<code python>
“”“
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")
<code>
prog/palindrome.1584459025.txt.gz · Dernière modification : de jbpuel