Question:

Write a user-defined function in Python named showGrades(S) which takes the dictionary S as an argument. The dictionary S contains Name: [Eng, Math, Science] as key:value pairs. 
The function displays the corresponding grade obtained by the students according to the following grading rules: 

\[ \begin{array}{|c|c|} \hline \textbf{Average of Eng, Math, Science} & \textbf{Grade} \\ \hline \geq 90 & A \\ \hline < 90 \text{ but } \geq 60 & B \\ \hline < 60 & C \\ \hline \end{array} \] 

Example: Consider the following dictionary: \[ S = \{\text{"AMIT"}: [92, 86, 64], \text{"NAGMA"}: [65, 42, 43], \text{"DAVID"}: [92, 90, 88]\} \] The output should be: \[ \text{AMIT} - B \\ \text{NAGMA} - C \\ \text{DAVID} - A \]

Show Hint

When dealing with dictionaries containing lists as values, use .items()} to loop through the key-value pairs and apply logic to the values directly.
Updated On: Jan 21, 2025
Hide Solution
collegedunia
Verified By Collegedunia

Solution and Explanation

def showGrades(S):  # Function definition
    for name, marks in S.items():  # Loop through each student and their marks
        avg = sum(marks) / len(marks)  # Calculate the average of marks
        if avg > 90:  # Check for grade A
            grade = "A"
        elif avg > 60:  # Check for grade B
            grade = "B"
        else:  # Check for grade C
            grade = "C"
        print(f"{name} - {grade}")  # Print the name and grade

# Example dictionary
S = {"AMIT": [92, 86, 64], "NAGMA": [65, 42, 43], "DAVID": [92, 90, 88]}
showGrades(S)  # Call the function
    
Explanation: The function showGrades(S) iterates through the dictionary S, where each key is a student's name, and the value is a list of marks in English, Math, and Science. The average is calculated using sum(marks) / len(marks). Grades are assigned based on the average using the conditions: - If the average is greater than or equal to 90, the grade is "A". - If the average is less than 90 but greater than or equal to 60, the grade is "B". - If the average is less than 60, the grade is "C". The result is printed in the format Name - Grade.
Was this answer helpful?
0
0