From 6e1e73eee0da71050772cd0ad0a356f6aff4f42f Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Mon, 9 Feb 2015 17:29:39 +0100 Subject: [PATCH] TP2 Maniaquerie Section Anagrammes --- S2/TP2/Makefile | 2 +- S2/TP2/tp2.py | 66 +++++++++++++++++++++++++++---------------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/S2/TP2/Makefile b/S2/TP2/Makefile index f30b431..721d81b 100644 --- a/S2/TP2/Makefile +++ b/S2/TP2/Makefile @@ -4,4 +4,4 @@ lexique.py: rm -rf lexique.zip clean: - rm -rf lexique* + rm -rf lexique* anagrammes* diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index 5bba38c..49f6d2a 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -186,14 +186,15 @@ question(1) def sont_anagrammes1(chaine1, chaine2): - """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon - str, str -> bool - CU: chaine1 et chaine2 sont des str + """ + Indique si chaine1 et chaine2 sont anagrammes + str, str → bool + CU : chaine1 et chaine2 sont des str """ - assert(type(chaine1) == str and type(chaine2) == str) + assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str' - # Si la longueur est différente ca ne peut pas être des anagrammes + # Si la longueur est différente, ça ne peut pas être des anagrammes if len(chaine1) != len(chaine2): return False @@ -206,14 +207,15 @@ question(2) def sont_anagrammes2(chaine1, chaine2): - """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon - str, str -> bool - CU: chaine1 et chaine2 sont des str + """ + Indique si chaine1 et chaine2 sont anagrammes + str, str → bool + CU : chaine1 et chaine2 sont des str """ - assert(type(chaine1) == str and type(chaine2) == str) + assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str' - # Si la longueur est différente ca ne peut pas être des anagrammes + # Si la longueur est différente, ça ne peut pas être des anagrammes if len(chaine1) != len(chaine2): return False @@ -226,14 +228,15 @@ question(3) def sont_anagrammes3(chaine1, chaine2): - """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon - str, str -> bool - CU: chaine1 et chaine2 sont des str + """ + Indique si chaine1 et chaine2 sont anagrammes + str, str → bool + CU : chaine1 et chaine2 sont des str """ - assert(type(chaine1) == str and type(chaine2) == str) + assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str' - # Si la longueur est différente ca ne peut pas être des anagrammes + # Si la longueur est différente, ça ne peut pas être des anagrammes if len(chaine1) != len(chaine2): return False @@ -255,11 +258,13 @@ question(2) def bas_casse_sans_accent(chaine): - """ str -> str, renvoie une chaine qui est l'équivalent non accentuée et minuscule de la chaine passée en paramètre - CU: chaine est un str + """ + Renvoie l'équivalent minuscule non accentuée de la chaîne passée en paramètre + str → str + CU : chaine est un str """ - assert(type(chaine) == str) + assert(type(chaine) == str), 'chaine doit être un str' chaineCpy = chaine.lower() @@ -277,21 +282,22 @@ question(3) def sont_anagrammes_sans_casse_ni_accent(chaine1, chaine2): - """ Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon, ne tient pas compte de la casse ou des accents - str, str -> bool - CU: chaine1 et chaine2 sont des str + """ + Indique si chaine1 et chaine2 sont anagrammes sans de tenir compte de la casse ni des accents + str, str → bool + CU : chaine1 et chaine2 sont des str """ - assert(type(chaine1) == str and type(chaine2) == str) + assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str' - # Si la longueur est différente ca ne peut pas être des anagrammes + # Si la longueur est différente, ça ne peut pas être des anagrammes if len(chaine1) != len(chaine2): return False chaine1Cpy = bas_casse_sans_accent(chaine1) chaine2Cpy = bas_casse_sans_accent(chaine2) - return sont_anagrammes2(chaine1Cpy, chaine2Cpy) + return sont_anagrammes2(chaine1Cpy, chaine2Cpy) # TODO Voir quelle est la meilleure méthode partie('Recherche d\'anagrammes') # Jean-loup @@ -323,8 +329,8 @@ question(1) def anagrammes(mot): - """ str -> list de str, parcourt tout le lexique et recherche les anagrammes de mot - CU: mot est un str + """ str → list de str, parcourt tout le lexique et recherche les anagrammes de mot + CU : mot est un str """ assert(type(mot) == str) @@ -355,8 +361,8 @@ question(2) def cle(mot): - """ str -> str , renvoie la version triée des lettres de mot, sans accent et en bas de casse. - CU: mot est un str + """ str → str , renvoie la version triée des lettres de mot, sans accent et en bas de casse. + CU : mot est un str """ assert(type(mot) == str) @@ -384,8 +390,8 @@ question(4) def anagrammes2(mot): - """ str -> list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot - CU: mot est un str + """ str → list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot + CU : mot est un str """ k = cle(mot)