我正在试着找出这门课的平均数学分数,但我不确定如何在字典中这样做。如何使用一种简单的方法将每个分数相加,然后除以学生人数(num_students)?
login="teacher"
password="school"
usrnm=input("Please enter your username: ")
pw=input("Please enter your password: ")
if (usrnm==login) and (pw==password):
print("==Welcome to the Mathematics Score Entry Program==")
num_students = int(input("Please enter number of students:"))
print ("you entered ",num_students," students")
student_info = {}
student_data = ['Maths Score: ']
for i in range(0,num_students):
student_name = input("Name :")
student_info[student_name] = {}
for entry in student_data:
student_info[student_name][entry] = int(input(entry))
print (student_info)
else:
print("No way, Jose!")发布于 2017-06-30 17:46:57
python字典有一个.values()方法,它返回字典中您可以使用的值的列表,例如:
sum(d.values()) / float(len(d))d.values()给出学生的分数列表,sum(..)给出所有分数的总和,除以len(d),这是字典的整数长度(即分数),显然平均值是分数总数/分数。
您需要浮点数,因为python 2将返回一个整数,否则(python 3会在适当的时候提供浮点数)
发布于 2017-06-30 17:47:48
可以使用sum函数计算平均值,如下所示:
average = sum(d['Maths Score: '] for d in student_info.values()) / len(student_info)请注意,目前您的代码只能有具有唯一名称的学生。两个同名学生将互相覆盖。
发布于 2017-06-30 17:58:46
如果您使用的是Python 3.4+,则可以使用statistics.mean
from statistics import mean
avg_score = mean(d.values())https://stackoverflow.com/questions/44843346
复制相似问题