Aide sur un code Python - Python - Programmation
Marsh Posté le 06-03-2016 à 19:16:43
Déjà faudrait mettre des balises pour préserver l'indentation essentielle en Python.
Marsh Posté le 07-03-2016 à 22:10:13
Bah suffit de lire le message d'erreur
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.
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 ~