subjects = ['数学', '语文', '英语', '物理', '化学']

grades = []

for sub in subjects:

    grades.append(int(input(f"请输入{sub}的成绩:")))

sum_grade = sum(grades)

avg_grade = sum_grade / len(subjects)

squ = sum([(i-avg_grade) ** 2 for i in grades]) /len(subjects)

print(f"总分是:{sum_grade}")

print(f"平均分是:{avg_grade:.2f}")

print(f"方差是:{squ:.2f}")



下面是代码的详细解释:


初始化一个列表subjects,包含了多个科目的名称,例如"数学", "语文"等。

subjects = ['数学', '语文', '英语', '物理', '化学']

初始化一个空列表grades,用于存储用户输入的成绩。

grades = []

使用for循环遍历subjects列表中的每一个科目名称。

for sub in subjects:

在循环内部,使用input函数提示用户输入对应科目的成绩,并使用int函数将输入的字符串转换为整数,然后添加到grades列表中。

grades.append(int(input(f"请输入{sub}的成绩:")))

循环结束后,grades列表将包含所有科目的成绩。

使用sum函数计算所有成绩的总和,并存储在sum_grade变量中。

sum_grade = sum(grades)

计算平均分。通过将总和除以科目数量(使用len函数获取科目数量),得到平均分,并存储在avg_grade变量中。同时,使用格式化字符串将平均分保留两位小数。

avg_grade = sum_grade / len(subjects)

计算方差。方差是每个数值与平均数的差的平方的平均值。这里使用列表推导式计算每个成绩与平均分的差值的平方,然后求和,再除以科目数量,得到方差,并存储在squ变量中。同样地,使用格式化字符串将方差保留两位小数。

squ = sum([(i-avg_grade) ** 2 for i in grades]) /len(subjects)

最后,使用print函数输出总分、平均分和方差。

print(f"总分是:{sum_grade}")  

print(f"平均分是:{avg_grade:.2f}")  

print(f"方差是:{squ:.2f}")

总结:这段代码的目的是收集用户输入的多个科目的成绩,并计算这些成绩的总和、平均分和方差,然后将这些统计信息打印出来。