prog:palindrome
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| prog:palindrome [2020/03/17 15:30] – créée jbpuel | prog:palindrome [2020/04/06 09:03] (Version actuelle) – supprimée jbpuel | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== 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(" | ||
| - | 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.replace(" | ||
| - | phrase = phrase.replace(" | ||
| - | phrase = phrase.replace(" | ||
| - | return phrase | ||
| - | |||
| - | ph = input(" | ||
| - | ph = nettoyage(ph) | ||
| - | print (" | ||
| - | i = 0 | ||
| - | long = len(ph) | ||
| - | |||
| - | |||
| - | # Méthode 1 : parcours classique de la chaîne | ||
| - | while i< | ||
| - | if (ph[i] == ph[long-1-i]): | ||
| - | pal = True | ||
| - | else: | ||
| - | pal = False | ||
| - | break | ||
| - | i=i+1 | ||
| - | | ||
| - | if pal: | ||
| - | print (" | ||
| - | else: | ||
| - | print ("Pas palindrome" | ||
| - | |||
| - | # Méthode 2 : parcours de la chaîne, notation plus python | ||
| - | while i< | ||
| - | if (ph[i] == ph[-1-i]): | ||
| - | pal = True | ||
| - | else: | ||
| - | pal = False | ||
| - | break | ||
| - | i=i+1 | ||
| - | | ||
| - | if pal: | ||
| - | print (" | ||
| - | 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 (" | ||
| - | 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: | ||
| - | else: | ||
| - | pal = False | ||
| - | return pal | ||
| - | |||
| - | if palindrome(ph): | ||
| - | print (" | ||
| - | else: | ||
| - | print ("Pas palindrome" | ||
| - | < | ||
prog/palindrome.1584459025.txt.gz · Dernière modification : de jbpuel
