diff --git a/S2/TP2/tp2.py b/S2/TP2/tp2.py index 36335a2..5b8fd9f 100644 --- a/S2/TP2/tp2.py +++ b/S2/TP2/tp2.py @@ -30,17 +30,17 @@ question(1) print(">>> s = 'la méthode split est parfois bien utile'") s = 'la méthode split est parfois bien utile' print(">>> s.split (' ')") -print(s.split (' ')) +print(s.split(' ')) print(">>> s.split ('e')") -print(s.split ('e')) +print(s.split('e')) print(">>> s.split ('é')") -print(s.split ('é')) +print(s.split('é')) print(">>> s.split ()") -print(s.split ()) +print(s.split()) print(">>> s.split ('')") print('ValueError: empty separator') print(">>> s.split ('split')") -print(s.split ('split')) +print(s.split('split')) question(2) @@ -59,7 +59,7 @@ s = 'la méthode split est parfois bien utile' print(">>> s.split(' ')") print(s.split(' ')) print('>>> s') -print('\''+s+'\'') +print('\'' + s + '\'') print( 'De par cet exemple, on remarque que s reste la même chaîne de caractère, `split` ne modifie donc pas la chaîne de caractères à laquelle elle s\'applique (ce qui est logique vu le caractère non-mutable des chaînes de caractères') @@ -74,23 +74,23 @@ s = 'la méthode split est parfois bien utile' print('>>> l = s.split()') l = s.split() print('>>> "".join (l)') -print("".join (l)) +print("".join(l)) print('>>> " ".join (l)') -print(" ".join (l)) +print(" ".join(l)) print('>>> ";".join (l)') -print(";".join (l)) +print(";".join(l)) print('>>> " tralala ".join (l)') -print(" tralala ".join (l)) +print(" tralala ".join(l)) print('>>> "\n".join (l)') -print("\n".join (l)) +print("\n".join(l)) print('>>> "".join (s)') -print("".join (s)) +print("".join(s)) print('>>> "!".join (s)') -print("!".join (s)) +print("!".join(s)) print('>>> "".join ()') print('TypeError: join() takes exactly one argument (0 given)') print('>>> "".join ([])') -print("".join ([])) +print("".join([])) print('>>> "".join ([1,2])') print('TypeError: sequence item 0: expected str instance, int found') @@ -106,7 +106,7 @@ chaine = '!' print('>>> chaine.join(l)') print(chaine.join(l)) print('>>> chaine') -print('\''+chaine+'\'') +print('\'' + chaine + '\'') print( @@ -133,7 +133,7 @@ section('Méthode sort') question(1) print('>>> l = list (\'timoleon\')') -l = list ('timoleon') +l = list('timoleon') print('>>> l.sort()') l.sort() print('>>> l') @@ -144,7 +144,7 @@ print('La méthode sort semble trier les lettres par ordre alphabétique') print('>>> s = "Je n\'ai jamais joué de flûte."') s = "Je n'ai jamais joué de flûte." print('>>> l = list (s)') -l = list (s) +l = list(s) print('>>> l.sort()') l.sort() print('>>> l') @@ -163,8 +163,10 @@ l = ['a', 1] print('>>> l.sort()') print('TypeError: unorderable types: int() < str()') -print('On obtient une erreur comme quoi les types str et int ne sont pas ordonnable. En effet, il n\'est pas logique d\'ordonner des caractères avec des chiffres.') -print('Notons qu\'il aurait très bien pu être possible que cette fonction utilise le code des caractères, puisque celui-ci est de type int, comme c\'était le cas avec Python 2.') +print( + 'On obtient une erreur comme quoi les types str et int ne sont pas ordonnable. En effet, il n\'est pas logique d\'ordonner des caractères avec des chiffres.') +print( + 'Notons qu\'il aurait très bien pu être possible que cette fonction utilise le code des caractères, puisque celui-ci est de type int, comme c\'était le cas avec Python 2.') section('Une fonction sort pour les chaînes') @@ -251,7 +253,8 @@ section('Casse et accentuation') question(1) -EQUIV_NON_ACCENTUE = {'é': 'e', 'è': 'e', 'à ': 'a', 'ç': 'c', 'î':'i', 'ï': 'i', 'ô': 'o', 'ê': 'e', 'ë': 'e', 'â': 'a', 'û': 'u'} +EQUIV_NON_ACCENTUE = {'é': 'e', 'è': 'e', 'à ': 'a', 'ç': 'c', + 'î': 'i', 'ï': 'i', 'ô': 'o', 'ê': 'e', 'ë': 'e', 'â': 'a', 'û': 'u'} question(2) @@ -375,9 +378,9 @@ ANAGRAMMES = dict() for i in LEXIQUE: k = cle(i) if not k in ANAGRAMMES: - ANAGRAMMES[k]=[i] + ANAGRAMMES[k] = [i] else: - ANAGRAMMES[k]= ANAGRAMMES[k] + [i] + ANAGRAMMES[k] = ANAGRAMMES[k] + [i] print(len(ANAGRAMMES)) @@ -421,10 +424,11 @@ debut = time.time() for i in range(30): anagrammes2(LEXIQUE[i]) - + 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 @@ -438,10 +442,9 @@ def arbre_vers_liste(arbre): possibilites = [] # for i in arbre: - - return possibilites + def annagrammes_arbre(liste): # TODO Docstring anagrammesPremier = anagrammes(liste[0]) @@ -453,6 +456,7 @@ def annagrammes_arbre(liste): else: return anagrammesPremier + def developpement(mots): # [[1, 2], [3, 4]] ⇒ [[1, 3], [1, 4], [2, 3], [2, 4]] # TODO Docstring @@ -475,6 +479,8 @@ partie('Sauvegarde et récupération') ANAGRAMMES_FICHIER = 'anagrammes.txt' question(1) + + def sauver_dico(): f = open(ANAGRAMMES_FICHIER, 'w') for i in ANAGRAMMES: @@ -485,10 +491,13 @@ 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)) +print('Le dictionnaire fait %d octets, soit %0.3f Mio.' % + (taille, taille / 1024 / 1024)) question(3) + + def charger_dico(): ANAGRAMMES = dict() f = open(ANAGRAMMES_FICHIER, 'r')