-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstudent_gradation.py
More file actions
60 lines (52 loc) · 1.72 KB
/
Copy pathstudent_gradation.py
File metadata and controls
60 lines (52 loc) · 1.72 KB
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
# 1. Jack's dictionary
jack = { "name":"Jack Frost",
"test" : [75, 75],
"lab" : [78.20, 77.20],
"assignment" : [80, 50, 40, 20]
}
# 2. James's dictionary
james = { "name":"James Potter",
"test" : [80, 80],
"lab" : [67.90, 78.72],
"assignment" : [82, 56, 44, 30]
}
# 3. Dylan's dictionary
dylan = { "name" : "Dylan Rhodes",
"test" : [78, 77],
"lab" : [80, 80],
"assignment" : [77, 82, 23, 39]
}
# 4. Jessica's dictionary
jess = { "name" : "Jessica Stone",
"test" : [40, 50],
"lab" : [69, 44.56],
"assignment" : [67, 55, 77, 21]
}
# 5. Tom's dictionary
tom = { "name" : "Tom Hanks",
"test" : [65, 56],
"lab" : [50, 40.6],
"assignment" : [29, 89, 60, 56]
}
def calculate_average(marks):
return float(sum(marks))/len(marks)
def calculate_average_marks(student):
test_avg = calculate_average(student["test"])
lab_avg = calculate_average(student["lab"])
assignment_avg = calculate_average(student["assignment"])
avg_marks = test_avg * 0.7 + lab_avg * 0.2 + assignment_avg * 0.1
return avg_marks
def assign_grade(score):
if score >= 90: grade = "O"
elif score >= 80: grade = "A"
elif score >= 70: grade = "B"
elif score >= 60: grade = "C"
elif score >= 50: grade = "D"
else: grade = "E"
return grade
students = [jack,james,dylan,jess,tom]
for student in students:
name = student["name"]
avg_marks = calculate_average_marks(student)
grade = assign_grade(avg_marks)
print("Student name: {0:18s}Average Marks: {1:2.2f}\tGrade: {2:4s}".format(name,avg_marks,grade))