Bonjour à tous :-)

Je débute en python.
J'ai un souci avec mon code et j'ai beau tourner le truc dans tous les sens, je ne vois pas mon erreur.
Voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}
 
# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total)
    return total / len(numbers)
 
def get_average(student):
    homework = average(student["homework"])
    quizzes = average(student["quizzes"])
    tests = average(student["tests"])
    return (homework * 0.1) + (quizzes * 0.3) + (tests * 0.6)
 
def get_letter_grade(score):
    if type(score == int) or type(score) == float:
        if score >= 90:
            return "A"
        elif score >= 80:
            return "B"
        elif score >= 70:
            return "C"
        elif score >= 60:
            return "D"
        else:
            return "F"
    else:
        return "Saisie incorrecte"
 
print "Moyenne de Lloyd : " + str(get_average(lloyd))
print "Moyenne de Alice : " + str(get_average(alice))
print "Moyenne de Tyler : " + str(get_average(tyler))
print
def get_class_average(students):
    #print "Debut fonction : " + str(students)
    results = []
    for student in students:
        #average_student = get_average(student)
        #print average_student
        results.append(get_average(student))
        print "Array_results : " + str(results)
        print average(results)
        print "Moyenne : " + str(average(results))
        #return average(results)
 
students = [alice, lloyd, tyler]
print get_class_average(students)
C'est plein de prints parce que j'essayais de trouver ce qui clochait.

Tant que mon return est commenté, tout va bien.
Résultat dans la "console" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Moyenne de Lloyd : 80.55
Moyenne de Alice : 91.15
Moyenne de Tyler : 79.9
 
Array_results : [91.14999999999999]
91.15
Moyenne : 91.15
Array_results : [91.14999999999999, 80.55]
85.85
Moyenne : 85.85
Array_results : [91.14999999999999, 80.55, 79.9]
83.8666666667
Moyenne : 83.8666666667
Mais quand je réactive mon return :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Moyenne de Lloyd : 80.55
Moyenne de Alice : 91.15
Moyenne de Tyler : 79.9
 
Array_results : [91.14999999999999]
91.15
Moyenne : 91.15
91.15
Ça ne prend plus qu'un des items de la liste :-(

Merci d'avance pour votre aide.