Python实现学生成绩管理:输入格式、数据类型与成绩赋值需谨慎!
```python class Score: def __init__(self, usual_score, final_score): # 初始化平时成绩和期末成绩 self.usual_score = int(usual_score) self.final_score = int(final_score) def calculate_total_score(self): # 计算总成绩,平时成绩占40%,期末成绩占60%,取整数部分 return int(self.usual_score * 0.4 + self.final_score * 0.6) class Student: def __init__(self, student_id, name): # 初始化学号、姓名 self.student_id = student_id self.name = name # 初始化语文、数学、物理成绩为None self.chinese_score = None self.math_score = None self.physics_score = None def calculate_total_score(self): # 计算学生的总分 return self.chinese_score.calculate_total_score() + self.math_score.calculate_total_score() + self.physics_score.calculate_total_score() def calculate_average_score(self): # 计算学生的平均分,保留两位小数 return round(self.calculate_total_score() / 3, 2) students = {} for _ in range(9): info = input().split() student_id, name, course, usual_score, final_score = info if student_id not in students: # 如果学生不存在,创建新的学生对象 students[student_id] = Student(student_id, name) student = students[student_id] score = Score(usual_score, final_score) if course == "语文": student.chinese_score = score elif course == "数学": student.math_score = score elif course == "物理": student.physics_score = score for student in students.values(): total_score = student.calculate_total_score() average_score = student.calculate_average_score() chinese_total = student.chinese_score.calculate_total_score() math_total = student.math_score.calculate_total_score() physics_total = student.physics_score.calculate_total_score() print(f"{student.student_id} {student.name} {total_score} {average_score:.2f} {chinese_total:.2f} {math_total:.2f} {physics_total:.2f}") ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 输入数据的格式必须严格按照要求,若输入数据格式错误,可能导致程序无法正确解析数据。 2. 在计算总成绩和平均分时,要注意数据类型的转换,避免出现计算错误。 3. 确保每个学生的三门课程成绩都被正确赋值,否则在计算总分和平均分的时候会出现异常。 ######[AI写代码神器 | 629点数解答 | 2025-10-30 16:52:22]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)410
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)354
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)344
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)340
- C++ 实现:从卫星导航 $gprmc 报文精准提取经纬度值(字节豆包 | 385点数解答 | 2025-01-08 03:43:54)458
- 卫星导航 GPRMC 报文解析:C++ 实现经纬度提取(字节豆包 | 346点数解答 | 2025-01-08 03:46:29)452
- bookmanage 数据库表创建、测试数据添加及多需求 SQL 操作全解析(GPT | 909点数解答 | 2024-06-22 22:25:19)408
- WinForm实现图书管理系统:数据库操作、界面设计与功能全解析(GPT | 1163点数解答 | 2024-06-22 22:26:42)365
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)59
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)62
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)59
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)219