vendredi 12 mai 2023

Exo-6 python initiation

Le corrigé du numéro 5 est à la fin de l'article.


Enoncé exo6.

1) Faire un fonction qui calcule la somme des N premiers nombres impairs.

Exemple : print(somme_impair(2))    => donnera : 4

La fonction doit utiliser une boucle et non pas une formule directe.

2)Utilisation d'un cache.

A l'aide d'un dictionnaire , conservez les résultats des calculs.

Avant de lancer la boucle de calcul, la fonction doit aller voir dans son cache.

Avec un notebook Jupyter placer une instruction %%timeit dans une cellule pour mesurer l'écart  entre un premier calcul et le second.



Corrigé de l'exercice 5



class Comptage():
    def __init__(self, texte):
        self.dico = {}
        tab_texte = texte.split(' ')
        for mot in tab_texte:  
            if mot.find("'") > 0:
                tab= mot.split("'")
                mot= tab[1]
            self.maj_dico(mot)
 
    def maj_dico(self, mot):
        if mot != '' and len(mot) > 1:
             if mot.lower() in self.dico:
                 self.dico[mot.lower()] += 1
             else:
                 self.dico[mot.lower()] = 1
 
    def liste(self):
        liste_ = []
        for cle, valeur in self.dico.items() :
            liste_.append((cle,valeur ))
        return liste_
 

Aucun commentaire: