Aller au contenu


Photo
- - - - -

Simplification d'un petit programme


2 réponses à ce sujet

#1 Ismael93

Ismael93

    Nouveau membre

  • Membres
  • 14 messages

Posté 04 novembre 2018 - 01:50

Salut les Makers j'aurai besoin de votre aide pour la simplification d'un de mes programmes :

11) Ecrivez une fonction moyenneListe(L) qui calcule et retourne la moyenne des éléments de L :

def moyenneListe(L):
       s=0
       for i in L:
           s=s+i
       return s/len(L)

2. Ecrivez une fonction nbNotesAuDessus(L) qui calcule et retourne le nombre de notes superieurs ou égale a la moyenne des éméments de L:

(j'ai recopier la fonction moyenneListe(L), puis:)
def nbAuDessus(L):
    nb=0
    for k in L :
             if k(sup)=moyenneListe(L):
                     nb=nb+1
    return nb

3. Ecrivez une fonction existeNoteMoyenne(L) qui retourne True is il E un element de L egale a la moyenne des éléments de L, sinon False:

def existeNoteMoyenne(L):
    s=0
    for i in L:
            s=s+i
    for k in L:
           m=s/len(L)
           if k==m:
                 return True
    return False

je me demande si pour la 2 il est possible de simplifier sur le modele de la 3, ou alors si pour la 3 je dois proceder comme la 2



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 825 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 04 novembre 2018 - 03:17

Je ne comprend pas pourquoi dans la partie 3 tu n'utilise pas la fonction moyenne vu question 1. 

Ensuite pour simplifier plutôt que d'appeer plusieurs fois la fonction moyenne alors que la liste n'a pas changé il faut l'appeler une fois au début et stocker le résultat puis utiliser partout le résultat.  Remarque valable pour la partie 2 et 3 ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#3 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 131 messages
  • Gender:Male
  • Location:Autriche

Posté 05 novembre 2018 - 04:49

Visiblement, c'est du python tout ça.
Dans la librairie de base, tu peux utiliser :
- sum()
- une "list comprehension" (https://djangostars....or-expressions/)
- Le keyword "in" qui renvoie un booléen

et écrire ta fonction 1 en deux lignes, ta fonction 2 en deux lignes (ou trois selon les paramètres passés et la correction attendue vis-à-vis du langage), la fonction 3 en 2 lignes. Basiquement:

def func(L):
   return <code>
Attention, quand on teste une égalité, il faut écrire '=='.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, Projet Ballista
Avatar tiré du site bottlebot



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users