Interview Questions, Answers and Tutorials

Finding the percentage

Finding the percentage

The provided code stub will read in a dictionary containing key/value pairs of name:[marks] for a list of students. Print the average of the marks array for the student name provided, showing 2 places after the decimal.

Example
marks key:value pairs are
‘alpha’: [20, 30, 40]
‘beta’: [30, 50, 70]
query_name = ‘beta’

The query_name is ‘beta’. beta’s average score is (30 + 50 + 70)/3 = 50.0.

Input Format

The first line contains the integer n, the number of students’ records. The next n lines contain the names and marks obtained by a student, each value separated by a space. The final line contains query_name, the name of a student to query.

Constraints

  • 2 < n < 10
  • 0 < marks[i] < 100
  • length of marks array = 3

Output Format

Print one line: The average of the marks obtained by the particular student correct to 2 decimal places.

Sample Input 0

3
Krishna 67 68 69
Arjun 70 98 63
Malika 52 56 60
Malika

Sample Output 0

56.00
Explanation 0

Marks for Malika are {52, 56, 60} whose average is (52 + 56 + 60)/3 = 56

Sample Input 1

2
Harsh 25 26.5 28
Anurag 26 28 30
Harsh

Sample Output 1

26.50

Solution:

if __name__ == '__main__':
    n = int(input())
    student_marks = {}
    for _ in range(n):
        name, *line = input().split()
        scores = list(map(float, line))
        student_marks[name] = scores
    query_name = input()

    marks_list = student_marks[query_name]

    sum = 0
    for i in marks_list:
        sum += i

    avg = format(sum / len(marks_list), '.2f')

    print(avg)