From 6db91e9541d45781328eb2bc2ecd517cacafc295 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Mon, 9 Feb 2015 12:02:00 +0100 Subject: [PATCH] =?UTF-8?q?TP=202=20Section=20Sauvegarde=20et=20r=C3=A9cup?= =?UTF-8?q?=C3=A9ration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bizarre, quand j'ai fait le découpage elle n'existait pas sur le sujet --- S2/TP2/.gitignore | 3 +- S2/TP2/tp2.py | 124 ++++++++++++++++++++++++++++------------------ 2 files changed, 77 insertions(+), 50 deletions(-) diff --git a/S2/TP2/.gitignore b/S2/TP2/.gitignore index 972d5e6..4d68079 100644 --- a/S2/TP2/.gitignore +++ b/S2/TP2/.gitignore @@ -1 +1,2 @@ -lexique* \ No newline at end of file +lexique* +anagrammes.txt \ No newline at end of file diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index b7c3a76..14ba39c 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -408,65 +408,91 @@ section('Comparaison des deux méthodes') question(1) -import time +# import time -debut = time.time() +# debut = time.time() -for i in range(30): - anagrammes(LEXIQUE[i]) +# for i in range(30): +# anagrammes(LEXIQUE[i]) -temps1 = time.time() - debut +# temps1 = time.time() - debut -debut = time.time() +# debut = time.time() -for i in range(30): - anagrammes2(LEXIQUE[i]) +# for i in range(30): +# anagrammes2(LEXIQUE[i]) -temps2 = time.time() - debut +# temps2 = time.time() - debut -print('La première méthode à mis %s secondes, et la deuxième %s secondes' %(temps1,temps2)) +# print('La première méthode à mis %s secondes, et la deuxième %s secondes' %(temps1,temps2)) -partie('Phrases d\'anagrammes') # Geoffrey +# partie('Phrases d\'anagrammes') # Geoffrey + +# question(1) + + +# def arbre_vers_liste(arbre): +# # [[1, [3, [4]]], [2, [3, [4]]]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] +# print(arbre) +# possibilites = [] +# # for i in arbre: + + + +# return possibilites + +# def annagrammes_arbre(liste): +# # TODO Docstring +# anagrammesPremier = anagrammes(liste[0]) +# if len(liste) > 1: # Si il y a des anagrammes après +# res = [] +# for i in anagrammesPremier: +# res.append([i, annagrammes_arbre(liste[1:])]) +# return res +# else: +# return anagrammesPremier + +# def developpement(mots): +# # [[1, 2], [3, 4]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] +# # TODO Docstring +# for annagrammes in mots: +# for annagramme in annagrammes: +# return False + + +# def annagrammes_phrase(phrase): +# # TODO Docstring +# mots = phrase.split() +# anagrammesArbre = annagrammes_arbre(mots) +# annagrammesMots = [anagrammes(i) for i in mots] +# return arbre_vers_liste(anagrammesArbre) + +# print(annagrammes_phrase('orange orange orange')) # DEBUG + +partie('Sauvegarde et récupération') + +ANAGRAMMES_FICHIER = 'anagrammes.txt' question(1) +def sauver_dico(): + f = open(ANAGRAMMES_FICHIER, 'w') + for i in ANAGRAMMES: + f.write(i + ':' + ':'.join(ANAGRAMMES[i]) + '\n') + f.close() + +question(2) +sauver_dico() +from os.path import getsize +taille = getsize(ANAGRAMMES_FICHIER) +print('Le dictionnaire fait %d octets, soit %0.3f Mio.' % (taille, taille/1024/1024)) -def arbre_vers_liste(arbre): - # [[1, [3, [4]]], [2, [3, [4]]]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] - print(arbre) - possibilites = [] - # for i in arbre: - - - - return possibilites - -def annagrammes_arbre(liste): - # TODO Docstring - anagrammesPremier = anagrammes(liste[0]) - if len(liste) > 1: # Si il y a des anagrammes après - res = [] - for i in anagrammesPremier: - res.append([i, annagrammes_arbre(liste[1:])]) - return res - else: - return anagrammesPremier - -def developpement(mots): - # [[1, 2], [3, 4]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] - # TODO Docstring - for annagrammes in mots: - for annagramme in annagrammes: - return False - - -def annagrammes_phrase(phrase): - # TODO Docstring - mots = phrase.split() - anagrammesArbre = annagrammes_arbre(mots) - annagrammesMots = [anagrammes(i) for i in mots] - return arbre_vers_liste(anagrammesArbre) - -print(annagrammes_phrase('orange orange orange')) # DEBUG - +question(3) +def charger_dico(): + ANAGRAMMES = dict() + f = open(ANAGRAMMES_FICHIER, 'r') + for l in f: + decoupe = ':'.split(str(f)) + ANAGRAMMES[decoupe[0]] = decoupe[1:] + f.close()