TP2 Maniaquerie sections Anagrammes d'un mot

This commit is contained in:
Geoffrey Frogeye 2015-02-09 18:18:14 +01:00
parent df6bd11358
commit 7b516365fc

View file

@ -305,6 +305,8 @@ partie('Recherche d\'anagrammes') # Jean-loup
section('Le lexique')
# TODO Question 1 ?
question(2)
from lexique import *
@ -345,19 +347,21 @@ section('Anagrammes d\'un mot : seconde méthode')
question(1)
# Il se peut que certains mots du lexique soient des anagrammes d'autres
# mots du lexique, or on se retrouverait alors avec plusieurs fois la même
# liste d'anagrammes pour des clés différentes.
print('Il se peut que certains mots du lexique soient des anagrammes d\'autres mots du lexique,\
or on se retrouverait alors avec plusieurs fois la même liste d\'anagrammes \
pour des clés différentes.')
question(2)
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
"""
assert(type(mot) == str)
assert(type(mot) == str), 'mot doit être un str'
cpy = bas_casse_sans_accent(mot)
@ -376,16 +380,20 @@ for i in LEXIQUE:
ANAGRAMMES[k] = ANAGRAMMES[k] + [i]
print(len(ANAGRAMMES))
print('Le dictionnaire des anagrammes contient %d entrées' % len(ANAGRAMMES))
question(4)
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
"""
assert(type(mot) == str), 'mot doit être un str'
k = cle(mot)
if k in ANAGRAMMES:
@ -396,8 +404,8 @@ def anagrammes2(mot):
question(5)
print('Les anagrammes de Orange sont:', anagrammes2('Orange'))
print('Les anagrammes de Calbuth sont:', anagrammes2('Calbuth'))
for a in ['Orange', 'Calbuth']:
print('Les anagrammes de %s sont %s.' % (a, ', '.join(anagrammes2(a))))
section('Comparaison des deux méthodes')