Aide sur un code Python

Aide sur un code Python - Python - Programmation

Marsh Posté le 06-03-2016 à 17:11:45    

[b][/b][#4600B8][/#4600B8] Hello / Bonjour :)
 
N'ayant pas trouver de réponse sur le forum du site je tente le tout pour le tout en postant ici.
 
C'est un exercice de codeacademy...  
 
Voici l'énoncé :
 
 Instructions
 
    Définissez une fonction appelée calcule_classe_moyenne qui a un argument etudiants. Vous pouvez considérer etudiants comme une liste contenant trois étudiants.
    D'abord, créez une liste vide appelée resultats.
    Pour chaque élément etudiant dans la liste classe, calculez calcule_moyenne(etudiant) puis appelez resultats.append() avec ce résultat.
    Enfin, retournez le résultat de l'appel de moyenne() avec resultats.
 
 
Voici mon code !!
 
lloyd = {
"noms": "Lloyd",
"devoirs": [90.0, 97.0, 75.0, 92.0],
"quiz": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"noms": "Alice",
"devoirs": [100.0, 92.0, 98.0, 100.0],
"quiz": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"noms": "Tyler",
"devoirs": [0.0, 87.0, 75.0, 22.0],
"quiz": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}
 
def moyenne(nombres):
somme = sum(nombres)
somme = float(somme)
taille = len(nombres)
taille = float(taille)
total = somme/taille
return total
 
def average(nombres):
total = sum(nombres)
total = float(total)
average = total / len(nombres)
return average
 
def calcule_moyenne(etudiant):
devoirs = average(etudiant['devoirs'])
quiz = average(etudiant['quiz'])
tests = average(etudiant['tests'])
note = 0.1 * devoirs + 0.3 * quiz + 0.6 * tests
return note
 
def ecrire_lettre_note(note):
if note >= 90:
return "A"
elif note >= 80:
return "B"
elif note >= 70:
return "C"
elif note >= 60:
return "D"
else:
return "F"
print ecrire_lettre_note(calcule_moyenne(lloyd))
 
def calcule_classe_moyenne(etudiants):
resultats = []
for etudiant in etudiants:
resultats.append(calcule_classe_moyenne(etudiant))
return moyenne(resultats)
 
print calcule_classe_moyenne(resultats)
print ecrire_lettre_note(note)
 
Et voici la réponse de la console :
 
B
Traceback (most recent call last):
File "python", line 61, in
NameError: name 'resultats' is not defined
 
Merci de votre aide :)


---------------
~La_Marmotte ~
Reply

Marsh Posté le 06-03-2016 à 17:11:45   

Reply

Marsh Posté le 06-03-2016 à 19:16:43    

Déjà faudrait mettre des balises pour préserver l'indentation essentielle en Python. :o

Reply

Marsh Posté le 07-03-2016 à 22:10:13    

Bah suffit de lire le message d'erreur [:petrus75]

 

Tu files une variable "resultats" à ta fonction calcule_classe_moyenne à la ligne 61, sauf que ce resultats est jamais défini. Il y a un autre resultats qui est défini dans calcule_classe_moyenne, mais il n'a aucun rapport.

 

Un problème similaire existe avec note d'ailleurs.


Message édité par masklinn le 07-03-2016 à 22:11:25

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed