我的目标是: 有n个学生的记录。每个记录包含学生的名字和他们在数学、物理、数学方面的百分比,化学。分数可以是浮动值。您需要将记录保存在字典数据类型中。学生姓名是键。存储在列表中的分数是值。用户输入学生姓名。输出该学生获得的平均百分比分数。 这是我的代码:
n = int(input("Enter total number of students:"))
student_marks = {}
for x in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
student_name = input("Enter name of the student whose average you want:")
print("{0:.2f}".format(round(sum(student_marks[student_name]) / len(student_marks[student_name]), 2)))
我实际上得到了这个输出:
Enter total number of students:3
Krishna 67 68 69
Arjun 70 98 63
Malika 52 56 60
Enter name of the student whose average you want:Malika
56.00
但我希望我的样本输入是dict格式,包含列表中的标记,即
Sample input: {'Krishna':[67,68,69],
'Arjun':[70,98,63],
'Malika':[52,56,60]}
我如何修改我的代码以提供这样的输入?不使用导入asl? 请帮忙,谢谢
您可以导入模块ast并评估您的输入,如下所示
嘿,这就是你要找的吗
我不太明白这个问题,但我希望这有助于
也许在效率方面不是最好的,但是它完成了任务,如果有学生没有分数,它就不起作用,但是你可以用额外的逻辑来解决它
如果我理解正确,您希望将dict作为输入,因此您所要做的就是将dict的str表示转换为dict,为此您可以使用内置的ast.literal_eval
相关问题 更多 >
编程相关推荐