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