# Program to create grade calculator in Python

Given different scored marks of students. We need to find a Grade Calculator in Python. The test score is an average of the respective marks scored in assignments, tests, and lab work. The final test score is assigned using the below formula.

```10% of marks scored from submission of Assignments
70% of marks scored from Test
20% of marks scored in Lab-Works```

The grade will be calculated according to the:

```1. score >= 90 : "A"
2. score >= 80 : "B"
3. score >= 70 : "C"
4. score >= 60 : "D"```

Also, calculate the total class average and letter grade of the class.

## Python3

 `print``(``"Enter Marks Obtained in 5 Subjects: "``)``total1 ``=` `44``total2 ``=` `67``total3 ``=` `76``total4 ``=` `99``total5 ``=` `58` `tot ``=` `total1 ``+` `total2 ``+` `total3 ``+` `total4 ``+` `total4``avg ``=` `tot ``/` `5` `if` `avg >``=` `91` `and` `avg <``=` `100``:``    ``print``(``"Your Grade is A1"``)``elif` `avg >``=` `81` `and` `avg < ``91``:``    ``print``(``"Your Grade is A2"``)``elif` `avg >``=` `71` `and` `avg < ``81``:``    ``print``(``"Your Grade is B1"``)``elif` `avg >``=` `61` `and` `avg < ``71``:``    ``print``(``"Your Grade is B2"``)``elif` `avg >``=` `51` `and` `avg < ``61``:``    ``print``(``"Your Grade is C1"``)``elif` `avg >``=` `41` `and` `avg < ``51``:``    ``print``(``"Your Grade is C2"``)``elif` `avg >``=` `33` `and` `avg < ``41``:``    ``print``(``"Your Grade is D"``)``elif` `avg >``=` `21` `and` `avg < ``33``:``    ``print``(``"Your Grade is E1"``)``elif` `avg >``=` `0` `and` `avg < ``21``:``    ``print``(``"Your Grade is E2"``)``else``:``    ``print``(``"Invalid Input!"``)`

Output:

```Enter Marks Obtained in 5 Subjects:

## Python3

 `# Creating a dictionary which``# consists of the student name,``# assignment result test results``# and their respective lab results` `# 1. Jack's dictionary``jack ``=` `{``"name"``: ``"Jack Frost"``,``        ``"assignment"``: [``80``, ``50``, ``40``, ``20``],``        ``"test"``: [``75``, ``75``],``        ``"lab"``: [``78.20``, ``77.20``]``        ``}` `# 2. James's dictionary``james ``=` `{``"name"``: ``"James Potter"``,``         ``"assignment"``: [``82``, ``56``, ``44``, ``30``],``         ``"test"``: [``80``, ``80``],``         ``"lab"``: [``67.90``, ``78.72``]``         ``}` `# 3. Dylan's dictionary``dylan ``=` `{``"name"``: ``"Dylan Rhodes"``,``         ``"assignment"``: [``77``, ``82``, ``23``, ``39``],``         ``"test"``: [``78``, ``77``],``         ``"lab"``: [``80``, ``80``]``         ``}` `# 4. Jessica's dictionary``jess ``=` `{``"name"``: ``"Jessica Stone"``,``        ``"assignment"``: [``67``, ``55``, ``77``, ``21``],``        ``"test"``: [``40``, ``50``],``        ``"lab"``: [``69``, ``44.56``]``        ``}` `# 5. Tom's dictionary``tom ``=` `{``"name"``: ``"Tom Hanks"``,``       ``"assignment"``: [``29``, ``89``, ``60``, ``56``],``       ``"test"``: [``65``, ``56``],``       ``"lab"``: [``50``, ``40.6``]``       ``}` `# Function calculates average`  `def` `get_average(marks):``    ``total_sum ``=` `sum``(marks)``    ``total_sum ``=` `float``(total_sum)``    ``return` `total_sum ``/` `len``(marks)` `# Function calculates total average`  `def` `calculate_total_average(students):``    ``assignment ``=` `get_average(students[``"assignment"``])``    ``test ``=` `get_average(students[``"test"``])``    ``lab ``=` `get_average(students[``"lab"``])` `    ``# Return the result based``    ``# on weightage supplied``    ``# 10 % from assignments``    ``# 70 % from test``    ``# 20 % from lab-works``    ``return` `(``0.1` `*` `assignment ``+``            ``0.7` `*` `test ``+` `0.2` `*` `lab)`  `# Calculate letter grade of each student``def` `assign_letter_grade(score):``    ``if` `score >``=` `90``:``        ``return` `"A"``    ``elif` `score >``=` `80``:``        ``return` `"B"``    ``elif` `score >``=` `70``:``        ``return` `"C"``    ``elif` `score >``=` `60``:``        ``return` `"D"``    ``else``:``        ``return` `"E"` `# Function to calculate the total``# average marks of the whole class`  `def` `class_average_is(student_list):``    ``result_list ``=` `[]` `    ``for` `student ``in` `student_list:``        ``stud_avg ``=` `calculate_total_average(student)``        ``result_list.append(stud_avg)``        ``return` `get_average(result_list)`  `# Student list consisting the``# dictionary of all students``students ``=` `[jack, james, dylan, jess, tom]` `# Iterate through the students list``# and calculate their respective``# average marks and letter grade``for` `i ``in` `students:``    ``print``(i[``"name"``])``    ``print``(``"=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+="``)``    ``print``(``"Average marks of %s is : %s "` `%` `(i[``"name"``],``                            ``calculate_total_average(i)))` `    ``print``(``"Letter Grade of %s is : %s"` `%` `(i[``"name"``],``             ``assign_letter_grade(calculate_total_average(i))))` `    ``print``()`  `# Calculate the average of whole class``class_av ``=` `class_average_is(students)` `print``(``"Class Average is %s"` `%` `(class_av))``print``(``"Letter Grade of the class is %s "``      ``%` `(assign_letter_grade(class_av)))`

Output
```Jack Frost
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Average marks of Jack Frost is : 72.79
Letter Grade of Jack Frost is : C

James Potter
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Average marks of James Potter is : 75.962
Letter Grade of James Potter is : C

Dylan Rhodes
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Average marks of Dylan Rhodes is : 75.775
Letter Grade of Dylan Rhodes is : C

Jessica Stone
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Average marks of Jessica Stone is : 48.356
Letter Grade of Jessica Stone is : E

Tom Hanks
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Average marks of Tom Hanks is : 57.26
Letter Grade of Tom Hanks is : E

Class Average is 72.79
Letter Grade of the class is C ```

Time Complexity: O(n*l), Here n is the number of students and l is the total number of subjects
Auxiliary Space: O(1), As constant extra space is used.

Previous
Next