from decimal import Decimal
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()
avg = Decimal(sum(scores)/3)
avg = round(avg, 2)
print(avg)
输入:
2
Harsh 25 26.5 28
Anurag 26 28 30
Harsh
预期产量
26.50
我的输出
28.00
提供的代码存根将在字典中读取,该字典包含名称/标记对的键/值对,以获取学生列表。打印提供的学生姓名的分数数组的平均值,显示小数点后2位。
第一行包含整数n,即学生的记录数。接下来的n行包含学生获得的姓名和分数,每个值用空格分隔。最后一行包含query_name,即要查询的学生的姓名。
输入
3
Krishna 67 68 69
Arjun 70 98 63
Malika 52 56 60
Malika
我的输出
56.00
预期产量
56.00
我的代码可用于此输入,但不适用于其他输入。您能解释一下原因吗?
答案 0 :(得分:2)
对于您而言,您使用的查询不正确。 在计算平均值时,您总是在计算最后一个人的平均值。
avg = Decimal(sum(scores)/3)
正确的方法如下:
avg = Decimal(sum(student_marks[query_name])/3)