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
