Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1721 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Python : liste de liste, exercice

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Python : liste de liste, exercice

n°1837779
rionma33
Posté le 14-01-2009 à 12:58:01  profilanswer
 

Heurm heurm, bonjour à tous^^ j'aurais besoin d'un petit coup de main, si vous pouviez m'aider siouplait !! :)  
 
Alors, je voudrais créer un programme Python, qui utilise une liste de listes.
Ce serait un programme pour un professeur, qui lui permettrait de saisir le nom de ses élèves, puis les notes de chaque élève (sachant qu'il peut y avoir plusieurs notes par élève).  
 
Déjà, ça je n'y arrive pas .........
Je voudrais ensuite que le programme puisse dire quel est l'élève avec la meilleure moyenne, celui avec la pire, et la moyenne générale de la classe...
 
 
Est ce que quelqu'un peut m'aider avec toutes ces indications svp ? je n'ai jamais fait de liste de listes, et étant une piètre débutante en Python, je n'arrive à rien...
 
Merci  beaucoup !

mood
Publicité
Posté le 14-01-2009 à 12:58:01  profilanswer
 

n°1837804
rionma33
Posté le 14-01-2009 à 13:36:59  profilanswer
 

J'ai fait ça pour l'instant mais ça ne marche pas, et ce n'est pas complet vu que ça ne demande pas le nbre de notes par élèves....

Code :
  1. def SaisiNomNote(N):
  2.      Nom = ""
  3.      liste = []
  4.      Note = 0
  5.      for i in range(N):
  6.           Nom= raw_input("Nom:" )
  7.           Note= input("Note:" )
  8.           liste.append([Nom,Note])
  9.      return liste
  10. N=input("Combien d'élèves?" )
  11. T= SaisiNomNote(N)
  12. print T


Message édité par rionma33 le 14-01-2009 à 13:37:38
n°1839851
darkpengui​n
Posté le 19-01-2009 à 09:30:01  profilanswer
 

qu'est-ce qui ne marche pas ? (outre le fait que ce n'est pas complet)

 

et plutôt qu'une simple liste, j'utiliserais un dictionnaire...
tu aurais ainsi un dictionnaire où la clef est le nom, et la valeur est une liste de notes, ça évite de mélanger des variables de type différent (nom & notes) au sein d'une même liste.

 

par exemple (à créer dynamiquement):

Code :
  1. notes = dict({ 'marcel': [12,14,8],
  2.     'jules': [12,12,10,16],
  3.     'alphonse': [12,2] })
 

PS: pour un programme définitif, input n'est pas recommandé car l'entrée est interprétée et donc potentiellement plantogène si on tape une expression python.

 

Message cité 1 fois
Message édité par darkpenguin le 19-01-2009 à 09:32:45

---------------
Counting all the assh*les in the room, well I'm definitely not alone...
n°1840406
masklinn
í dag viðrar vel til loftárása
Posté le 20-01-2009 à 13:00:06  profilanswer
 

darkpenguin a écrit :

qu'est-ce qui ne marche pas ? (outre le fait que ce n'est pas complet)

 

et plutôt qu'une simple liste, j'utiliserais un dictionnaire...
tu aurais ainsi un dictionnaire où la clef est le nom, et la valeur est une liste de notes, ça évite de mélanger des variables de type différent (nom & notes) au sein d'une même liste.

 

par exemple (à créer dynamiquement):

Code :
  1. notes = dict({'marcel': [12,14,8],
  2.     'jules': [12,12,10,16],
  3.     'alphonse': [12,2] })
 

PS: pour un programme définitif, input n'est pas recommandé car l'entrée est interprétée et donc potentiellement plantogène si on tape une expression python.


J'aurais tendance à faire pareil, mais sans faire n'importe quoi sur la syntaxe:

Code :
  1. notes = {
  2.    'marcel': [12, 14, 8],
  3.    'jules': [12, 12, 10, 16],
  4.    'alphonse': [12, 2]
  5. }


est la syntaxe littérale pour un dict python, pas besoin de filter ça au constructeur, le seul effet de filer tout ça à dict c'est de consommer plus de ressources et de rendre le code moins lisible.

 

Une alternative est néamoins d'utiliser les kwargs de dict():

Code :
  1. notes = dict(marcel=[12, 14, 8], jules=[12, 12, 10, 16], alphonse=[12, 2])


Certains préfèrent cette syntaxe.

 

Et pour étendre là dessus, à partir du moment ou le dict est rempli, il est aisé de récupérer la plus basse moyenne avec min(iterable[, key=id]), la plus haute avec max(iterable[, key=id]) (en utilisant la même fonction de clé, passant e.g. par dict.iteritems()), et la moyenne globale de la classe est tout aussi aisée à obtenir.

Message cité 1 fois
Message édité par masklinn le 21-01-2009 à 15:26:24

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1841418
darkpengui​n
Posté le 22-01-2009 à 09:34:18  profilanswer
 

masklinn a écrit :


J'aurais tendance à faire pareil, mais sans faire n'importe quoi sur la syntaxe:

Code :
  1. notes = {
  2.    'marcel': [12, 14, 8],
  3.    'jules': [12, 12, 10, 16],
  4.    'alphonse': [12, 2]
  5. }


est la syntaxe littérale pour un dict python, pas besoin de filter ça au constructeur, le seul effet de filer tout ça à dict c'est de consommer plus de ressources et de rendre le code moins lisible.
 
Une alternative est néamoins d'utiliser les kwargs de dict():

Code :
  1. notes = dict(marcel=[12, 14, 8], jules=[12, 12, 10, 16], alphonse=[12, 2])


Certains préfèrent cette syntaxe.
 
Et pour étendre là dessus, à partir du moment ou le dict est rempli, il est aisé de récupérer la plus basse moyenne avec min(iterable[, key=id]), la plus haute avec max(iterable[, key=id]) (en utilisant la même fonction de clé, passant e.g. par dict.iteritems()), et la moyenne globale de la classe est tout aussi aisée à obtenir.


 
 :jap:  
effectivement, passer un dict au constructeur du dict c'est pas optimal :pt1cable:  
merci pour cette correction :)  


---------------
Counting all the assh*les in the room, well I'm definitely not alone...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Python : liste de liste, exercice

 

Sujets relatifs
Module Tkinter pythonLister les différents champs d'un parametre d'une fonction. Possible ?
Pourquoi ne pas pointer vers un élément courant dans une liste chainéePython, problème avec les tableaux
[C]programme affichant la suite d'operation pour trier une liste.[VB] utilisation d'une liste pour traiter des donnés
Blabla@Python \o/Recupere valeur liste deroulante VB2008
Python 3.0 est sorti :oListe de tableaux dynamique
Plus de sujets relatifs à : Python : liste de liste, exercice


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR