TP2 Maniaquerie Section Anagrammes

This commit is contained in:
Geoffrey Frogeye 2015-02-09 17:29:39 +01:00
parent a678814ad0
commit 6e1e73eee0
2 changed files with 37 additions and 31 deletions

View file

@ -4,4 +4,4 @@ lexique.py:
rm -rf lexique.zip
clean:
rm -rf lexique*
rm -rf lexique* anagrammes*

View file

@ -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)