TP2 Maniaquerie Section Anagrammes
This commit is contained in:
parent
a678814ad0
commit
6e1e73eee0
|
@ -4,4 +4,4 @@ lexique.py:
|
|||
rm -rf lexique.zip
|
||||
|
||||
clean:
|
||||
rm -rf lexique*
|
||||
rm -rf lexique* anagrammes*
|
||||
|
|
|
@ -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
|
||||
"""
|
||||
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
|
||||
"""
|
||||
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
|
||||
"""
|
||||
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
|
||||
"""
|
||||
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
|
||||
"""
|
||||
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,7 +329,7 @@ question(1)
|
|||
|
||||
|
||||
def anagrammes(mot):
|
||||
""" str -> list de str, parcourt tout le lexique et recherche les anagrammes de mot
|
||||
""" str → list de str, parcourt tout le lexique et recherche les anagrammes de mot
|
||||
CU : mot est un str
|
||||
"""
|
||||
|
||||
|
@ -355,7 +361,7 @@ question(2)
|
|||
|
||||
|
||||
def cle(mot):
|
||||
""" str -> str , renvoie la version triée des lettres de mot, sans accent et en bas de casse.
|
||||
""" str → str , renvoie la version triée des lettres de mot, sans accent et en bas de casse.
|
||||
CU : mot est un str
|
||||
"""
|
||||
|
||||
|
@ -384,7 +390,7 @@ question(4)
|
|||
|
||||
|
||||
def anagrammes2(mot):
|
||||
""" str -> list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot
|
||||
""" str → list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot
|
||||
CU : mot est un str
|
||||
"""
|
||||
|
||||
|
|
Reference in a new issue