Je ne comprend pas Merci d'avance [L'élève devient le professeur / 8. Une partie de tout]


#1




https://www.codecademy.com/fr/courses/python-beginner-fr-FR-wdjot/1/4?curriculum_id=5370f030fed2a866a2000001#

Bonjour a vous tous je suis actuelment bloké et je ne ces pas pourquoi
Le message d'ereur est :

Oups, merci de réessayer. Soyez sûr d'avoir défini calcul_classe_moyenne

Voici mon code avec des test a la fin pour savoir les resultat son juste

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]
}

classe = [lloyd, alice, tyler]

# Ajoutez votre fonction ci-dessous !
def moyenne(nombres):
    """ Calcule la moyen de la liste qui est en voyer """
    total = float(sum(nombres))
    return total / len(nombres)

def calcule_moyenne(etudiant):
    """ Calcule les moyen d'un etusiant et revoit une note en     fontion de coef"""
    devoirs = moyenne(etudiant["devoirs"])
    quiz = moyenne(etudiant["quiz"])
    tests = moyenne(etudiant["tests"])
    return ((devoirs * 0.1) + (quiz * 0.3) + (tests * 0.6)) 
   
def ecrire_lettre_note(note):
    """ calcule la letre de en raporte avec la note d'un etudiant"""
    if type(note) is type(float()) or type(note) is type(int()):
        note = float(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):
    """ revoie la moyen de la classe par raport au moyen de     chaque etuidiant"""
    resultats = []
    for i in etudiants:
        resultats.append(calcule_moyenne(i))

    return moyenne(resultats)

print "Moyen de la classe -> " + str(calcule_classe_moyenne(classe))

# Ajout pour test
# Affiche les note et la letre de chaque etudiants 
print " les moyen des eleves"

for i in classe:
    moy = calcule_moyenne(i)
    letremoy = ecrire_lettre_note(moy)
    print i["noms"] + " -> " + str(letremoy) + " : " + str(moy)

Resultat de la console:
Moyen de la classe -> 83.8666666667
les moyen des eleves
Lloyd -> B : 80.55
Alice -> A : 91.15
Tyler -> C : 79.9
None

Merci a vous pour votre aide


#2

Bonjour @ajaxrockstar33444,

Il y a une erreur dans les instructions.

Vous avez ceci ...

def calcule_classe_moyenne(etudiants):

... et cela ...

print "Moyen de la classe -> " + str(calcule_classe_moyenne(classe))

... mais vous devriez avoir ceci ...

def calcul_classe_moyenne(etudiants):

... et cela ...

print "Moyen de la classe -> " + str(calcul_classe_moyenne(classe))

#3

Merci sa ma debloke cependant je ne comprend pas pourquoi ce "e" ma blockée ?
Merci


#4

Codecademy applique un test de correction de soumission à votre code. Pour une raison quelconque, il vous faut utiliser le nom calcul_classe_moyenne, sans le premier e. :confused: