写成下面这样然后就不会了
# encoding=utf-8
# 学生结构体类型
class Student:
def __init__(self, stu_id, Class, name, grade1, grade2, grade3):
self.stu_id = stu_id
self.Class = Class
self.name = name
self.grade1 = grade1
self.grade2 = grade2
self.grade3 = grade3
# 大小为5的学生结构体数组
stu_list = [0 for i in range(5)]
# 实现学生数据的输入
def stu_info_input():
for i in range(len(stu_list)):
stu_id, Class, name, grade1, grade2, grade3 = input().split(' ')
grade1 = int(grade1)
grade2 = int(grade2)
grade3 = int(grade3)
s = Student(stu_id, Class, name, grade1, grade2, grade3)
stu_list[i] = s
# 求每个学生3门课程的平均成绩
# 用于存放平均分的列表
lt_avg_grade = []
def avg_grade():
for stu in stu_list:
avg_grade = (stu.grade1 + stu.grade2 + stu.grade3) / 3
lt_avg_grade.append(avg_grade)
print(stu.name + '的平均成绩:', avg_grade)
# 求出平均分最高的学生并输出该学生的数据
def highestAvgGrade_outputStuInfo():
highestAvgGrade = max(lt_avg_grade) # 最高平均分
stu = stu_list[lt_avg_grade.index(highestAvgGrade)] # 平均分最高的学生
print("平均分最高的学生:", stu.stu_id, stu.Class, stu.name, stu.grade1, stu.grade2, stu.grade3)
# 测试运行
if __name__ == '__main__':
stu_info_input()
avg_grade()
highestAvgGrade_outputStuInfo()
数据类型选择不当,应该用字典存储学生信息