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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

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