Aller au contenu


Photo
- - - - -

Simplification d'un petit programme


  • Veuillez vous connecter pour répondre
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
  • 10 081 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 !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPip
  • 1 211 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, M.A.R.C.E.L.
Avatar tiré du site bottlebot




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

0 members, 1 guests, 0 anonymous users