TP2 Maniaquerie sections Anagrammes d'un mot
This commit is contained in:
parent
df6bd11358
commit
7b516365fc
|
@ -305,6 +305,8 @@ partie('Recherche d\'anagrammes') # Jean-loup
|
||||||
|
|
||||||
section('Le lexique')
|
section('Le lexique')
|
||||||
|
|
||||||
|
# TODO Question 1 ?
|
||||||
|
|
||||||
question(2)
|
question(2)
|
||||||
|
|
||||||
from lexique import *
|
from lexique import *
|
||||||
|
@ -345,19 +347,21 @@ section('Anagrammes d\'un mot : seconde méthode')
|
||||||
|
|
||||||
question(1)
|
question(1)
|
||||||
|
|
||||||
# Il se peut que certains mots du lexique soient des anagrammes d'autres
|
print('Il se peut que certains mots du lexique soient des anagrammes d\'autres mots du lexique,\
|
||||||
# mots du lexique, or on se retrouverait alors avec plusieurs fois la même
|
or on se retrouverait alors avec plusieurs fois la même liste d\'anagrammes \
|
||||||
# liste d'anagrammes pour des clés différentes.
|
pour des clés différentes.')
|
||||||
|
|
||||||
question(2)
|
question(2)
|
||||||
|
|
||||||
|
|
||||||
def cle(mot):
|
def cle(mot):
|
||||||
""" str → str , renvoie la version triée des lettres de mot, sans accent et en bas de casse.
|
"""
|
||||||
|
Renvoie la version triée des lettres en minuscule et sans accents de mot
|
||||||
|
str → str
|
||||||
CU : mot est un str
|
CU : mot est un str
|
||||||
"""
|
"""
|
||||||
|
|
||||||
assert(type(mot) == str)
|
assert(type(mot) == str), 'mot doit être un str'
|
||||||
|
|
||||||
cpy = bas_casse_sans_accent(mot)
|
cpy = bas_casse_sans_accent(mot)
|
||||||
|
|
||||||
|
@ -376,16 +380,20 @@ for i in LEXIQUE:
|
||||||
ANAGRAMMES[k] = ANAGRAMMES[k] + [i]
|
ANAGRAMMES[k] = ANAGRAMMES[k] + [i]
|
||||||
|
|
||||||
|
|
||||||
print(len(ANAGRAMMES))
|
print('Le dictionnaire des anagrammes contient %d entrées' % len(ANAGRAMMES))
|
||||||
|
|
||||||
question(4)
|
question(4)
|
||||||
|
|
||||||
|
|
||||||
def anagrammes2(mot):
|
def anagrammes2(mot):
|
||||||
""" str → list de str, utilise le dictionnaire ANAGRAMMES pour trouver la liste des anagrammes de mot
|
"""
|
||||||
|
Recherche les anagrammes de mot
|
||||||
|
str → [str *]
|
||||||
CU : mot est un str
|
CU : mot est un str
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
assert(type(mot) == str), 'mot doit être un str'
|
||||||
|
|
||||||
k = cle(mot)
|
k = cle(mot)
|
||||||
|
|
||||||
if k in ANAGRAMMES:
|
if k in ANAGRAMMES:
|
||||||
|
@ -396,8 +404,8 @@ def anagrammes2(mot):
|
||||||
|
|
||||||
question(5)
|
question(5)
|
||||||
|
|
||||||
print('Les anagrammes de Orange sont:', anagrammes2('Orange'))
|
for a in ['Orange', 'Calbuth']:
|
||||||
print('Les anagrammes de Calbuth sont:', anagrammes2('Calbuth'))
|
print('Les anagrammes de %s sont %s.' % (a, ', '.join(anagrammes2(a))))
|
||||||
|
|
||||||
|
|
||||||
section('Comparaison des deux méthodes')
|
section('Comparaison des deux méthodes')
|
||||||
|
|
Reference in a new issue