用python编写统计数学成绩的代码
时间: 2024-09-13 21:19:30 浏览: 46
使用Python编写统计数学成绩的代码可以包含读取成绩、计算平均分、统计最高分和最低分以及打印结果等步骤。下面是一个简单的例子,这个例子假设我们已经有了一个包含数学成绩的列表。
```python
# 假设这是我们收集到的数学成绩列表
math_scores = [87, 92, 75, 90, 88, 94, 85, 89, 77, 82]
# 计算平均分
average_score = sum(math_scores) / len(math_scores)
print("数学成绩的平均分是:", average_score)
# 统计最高分和最低分
highest_score = max(math_scores)
lowest_score = min(math_scores)
print("数学成绩的最高分是:", highest_score)
print("数学成绩的最低分是:", lowest_score)
# 打印所有成绩
print("所有数学成绩如下:")
for score in math_scores:
print(score)
```
这段代码首先计算了所有成绩的平均分,并打印出来。然后使用内置函数 `max()` 和 `min()` 来找出最高分和最低分,并打印出来。最后,使用一个for循环遍历并打印出所有的成绩。
相关问题
用python编写代码有学生成绩存储文件”成绩表csv如下,通过读取文件数据,实现如下功能,(1)分别统计每门课程的最高分,最低分和平均分,(2)分别统计每个人的最高分。最低分和平均分,(3)以柱状图形式显示物理成绩。成绩表.CSV 姓名,英语,数学,物理张丽,98,87,92
首先,为了完成这个任务,你需要安装Python的一些必要库,比如`pandas`用于处理CSV数据,`matplotlib`用于绘制柱状图。这里是一个简单的步骤说明:
1. 导入所需的库:
```python
import pandas as pd
import matplotlib.pyplot as plt
```
2. 读取CSV文件:
```python
df = pd.read_csv('成绩表.csv')
```
3. 分别统计每门课程的最高分、最低分和平均分:
```python
# 计算每门课程的统计信息
course_stats = df[['英语', '数学', '物理']].describe()
```
4. 统计每个人的成绩总览(最高分、最低分和平均分):
```python
# 对姓名列去重,并计算每个人的统计信息
individual_stats = df.drop_duplicates(subset='姓名').groupby('姓名').agg(['min', 'max', 'mean'])
```
5. 画出物理成绩的柱状图:
```python
# 取出物理成绩并制作柱状图
physics_scores = df['物理']
plt.bar(physics_scores.index, physics_scores.values)
plt.xlabel('姓名')
plt.ylabel('物理成绩')
plt.title('物理成绩分布')
plt.show()
```
6. 结果输出或保存:
```python
# 打印或保存统计结果
print(course_stats)
print(individual_stats)
```
注意:以上代码假设文件路径正确,并且文件格式为CSV,且格式与提供的例子一致。如果文件的实际内容或格式有所不同,可能需要调整解析方法。
用Python语言编写班级成绩统计分析系统软件,完成以下任务:记录学生成绩信息,学生成绩信息结构至少应该包括以下几项:学号、姓名、班级、数学成绩、英语成绩。主要功能包括: 系统的界面菜单; 学生成绩信息输入; (3) 统计每个班级的人数; (4) 分别统计每个班级的数学、英语平均分; (5) 将学生成绩信息按班级存在不同的文本文件(.txt)中,文件名称为“班级名称.txt”,文件中按学生学号排序; (6) 退出程序。
这是一个很好的问题,我为你提供以下参考代码:
```python
import os
class Student:
def __init__(self, id, name, cls, math_score, eng_score):
self.id = id
self.name = name
self.cls = cls
self.math_score = math_score
self.eng_score = eng_score
class GradeAnalyzer:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def get_class_count(self, cls):
count = 0
for student in self.students:
if student.cls == cls:
count += 1
return count
def get_class_avg_score(self, cls, subject):
total_score = 0
count = 0
for student in self.students:
if student.cls == cls:
if subject == "math":
total_score += student.math_score
elif subject == "eng":
total_score += student.eng_score
count += 1
if count == 0:
return 0
else:
return total_score / count
def save_to_file(self):
classes = set([student.cls for student in self.students])
for cls in classes:
students = [student for student in self.students if student.cls == cls]
students.sort(key=lambda student: student.id)
filename = cls + ".txt"
with open(filename, "w") as f:
f.write("学号\t姓名\t班级\t数学成绩\t英语成绩\n")
for student in students:
f.write("{}\t{}\t{}\t{}\t{}\n".format(student.id, student.name, student.cls, student.math_score, student.eng_score))
if __name__ == "__main__":
analyzer = GradeAnalyzer()
while True:
print("1. 添加学生信息")
print("2. 统计班级人数")
print("3. 统计班级数学平均分")
print("4. 统计班级英语平均分")
print("5. 将学生成绩信息按班级存在不同的文本文件中")
print("6. 退出程序")
choice = input("请选择操作:")
if choice == "1":
id = input("请输入学号:")
name = input("请输入姓名:")
cls = input("请输入班级:")
math_score = int(input("请输入数学成绩:"))
eng_score = int(input("请输入英语成绩:"))
student = Student(id, name, cls, math_score, eng_score)
analyzer.add_student(student)
elif choice == "2":
cls = input("请输入班级:")
count = analyzer.get_class_count(cls)
print("班级人数为:{}".format(count))
elif choice == "3":
cls = input("请输入班级:")
avg_score = analyzer.get_class_avg_score(cls, "math")
print("班级数学平均分为:{}".format(avg_score))
elif choice == "4":
cls = input("请输入班级:")
avg_score = analyzer.get_class_avg_score(cls, "eng")
print("班级英语平均分为:{}".format(avg_score))
elif choice == "5":
analyzer.save_to_file()
print("学生成绩信息已保存到文件中")
elif choice == "6":
print("程序已退出")
break
else:
print("无效的选项,请重新选择")
```
阅读全文