TP2 Ajout des docstring
This commit is contained in:
parent
97dafd39d4
commit
38f5b68db6
|
@ -47,9 +47,6 @@ print(
|
|||
|
||||
question(3)
|
||||
|
||||
# TODO utf-8
|
||||
# TODO en print
|
||||
|
||||
print(">>> s = 'la méthode split est parfois bien utile'")
|
||||
s = 'la méthode split est parfois bien utile'
|
||||
print(">>> s.split(' ')")
|
||||
|
@ -112,7 +109,10 @@ question(4)
|
|||
|
||||
|
||||
def join(chaine, sequence):
|
||||
# TODO Docstring
|
||||
"""
|
||||
Retourne la concaténation des éléments de séquence en insérant chaine entre eux.
|
||||
str, [str *] → str
|
||||
"""
|
||||
res = ''
|
||||
l = len(sequence)
|
||||
for i in range(l):
|
||||
|
@ -170,7 +170,10 @@ question(1)
|
|||
|
||||
|
||||
def sort(chaine):
|
||||
# TODO Docstring
|
||||
"""
|
||||
Trie les caractères de chaine par ordre de codage.
|
||||
str → str
|
||||
"""
|
||||
# TODO On peut pas faire plus court ?
|
||||
t = list(chaine)
|
||||
t.sort()
|
||||
|
@ -416,7 +419,7 @@ section('Comparaison des deux méthodes')
|
|||
|
||||
question(1)
|
||||
|
||||
NB_TESTS = 30 # Mettre à 0 pour réduire l'attente
|
||||
NB_TESTS = 30 # Mettre à 0 pour réduire l'attente
|
||||
|
||||
import time
|
||||
|
||||
|
@ -431,7 +434,8 @@ for t in range(NB_TESTS):
|
|||
temps2 = time.time() - debut
|
||||
|
||||
print('La première méthode a duré %s secondes, et la deuxième %s secondes.' % (temps1, temps2),
|
||||
'La deuxième méthode est %0.2f fois plus efficace que la première.' % (temps1 / temps2),
|
||||
'La deuxième méthode est %0.2f fois plus efficace que la première.' % (
|
||||
temps1 / temps2),
|
||||
'En effet, la première vérifie %d combinaisons d\'anagrammes, alors que la deuxième ne \
|
||||
réalise qu\'un accès à un dictionnaire. Notons que la construction dudit dictionnaire a lui aussi \
|
||||
pris un certain temps, mais reste négligeable par rapport à la première méthode.' % len(LEXIQUE),
|
||||
|
@ -443,10 +447,15 @@ question(1)
|
|||
|
||||
# TODO Texte explicatif du concept d'arbres
|
||||
|
||||
|
||||
def liste_possibilites(arbre, precede):
|
||||
# dict → list
|
||||
# TODO Docstring
|
||||
# {1: {3: None}, {4: None}, 2: None} ⇒ [[1, 3], [1, 4], 2]
|
||||
"""
|
||||
Renvoie la liste des possibilités à partir d'un arbre de possibilités.
|
||||
dict, list → list
|
||||
|
||||
>>> liste_possibilites(annagrammes_arbre(['mange', 'ton']), [])
|
||||
[['mange', 'ton'], ['mange', 'ont'], ['mangé', 'ton'], ['mangé', 'ont']]
|
||||
"""
|
||||
possibilites = []
|
||||
for branche in arbre:
|
||||
if type(arbre[branche]) == dict:
|
||||
|
@ -458,9 +467,13 @@ def liste_possibilites(arbre, precede):
|
|||
|
||||
|
||||
def annagrammes_arbre(liste):
|
||||
# TODO Docstring
|
||||
# En supposant que (1, 3) et (2, 4) sont anagrammes
|
||||
# [1, 2] ⇒ {1: {2: None, 4: None}, 3: {2: None, 4: None}}
|
||||
"""
|
||||
Renvoie l'arbre des anagrammes possibles à partir d'une liste de mots.
|
||||
list → dict
|
||||
|
||||
>>> annagrammes_arbre(['mange', 'ton'])
|
||||
{'mange': {'ton': None, 'ont': None}, 'mangé': {'ton': None, 'ont': None}}
|
||||
"""
|
||||
anagrammesPremier = anagrammes(liste[0])
|
||||
if len(liste) > 1: # Si il y a des anagrammes après
|
||||
return dict((i, annagrammes_arbre(liste[1:])) for i in anagrammesPremier)
|
||||
|
@ -469,7 +482,13 @@ def annagrammes_arbre(liste):
|
|||
|
||||
|
||||
def annagrammes_phrase(phrase):
|
||||
# TODO Docstring
|
||||
"""
|
||||
Renvoie la liste des anagrammes possibles à partir d'une phrase.
|
||||
str → str
|
||||
|
||||
>>> annagrammes_phrase('mange ton')
|
||||
['mange ton', 'mange ont', 'mangé ton', 'mangé ont']
|
||||
"""
|
||||
mots = phrase.split()
|
||||
arbre = annagrammes_arbre(mots)
|
||||
liste = liste_possibilites(arbre, [])
|
||||
|
@ -486,6 +505,10 @@ question(1)
|
|||
|
||||
|
||||
def sauver_dico():
|
||||
"""
|
||||
Sauvegarde le dictionnaire des anagrammes dans un fichier.
|
||||
∅ → ∅
|
||||
"""
|
||||
fichier = open(ANAGRAMMES_FICHIER, 'w')
|
||||
for i in ANAGRAMMES:
|
||||
fichier.write(i + ':' + ':'.join(ANAGRAMMES[i]) + '\n')
|
||||
|
@ -503,6 +526,10 @@ question(3)
|
|||
|
||||
|
||||
def charger_dico():
|
||||
"""
|
||||
Lit le dictionnaire des anagrammes depuis un fichier.
|
||||
∅ → ∅
|
||||
"""
|
||||
ANAGRAMMES = dict()
|
||||
fichier = open(ANAGRAMMES_FICHIER, 'r')
|
||||
for ligne in fichier:
|
||||
|
|
Reference in a new issue