python定义一个学生类_python实现:写一个班级的类, 存储班里人数,统计班级里各学科的总分的最高分、各学科的平均分; 写班级里的学生类,存储学生所有成绩, 计算某个学生的全部课程的平均分、全...

#班级类

classClass_NO(object):def __init__(self,name):

self.grade_class_name=name

self.students=[]defset_grade_class_name(self,name):

self.grade_class_name=namedefget_grade_class_name(self):returnself.grade_class_namedefadd_student(self,student):

self.students.append(student)defget__classNo_max_total_score(self):

student_total_score=[]for i inself.students:

student_total_score.append(i.get_student_total_score())##########

#print (student_total_score)

max_student_total_score=max(student_total_score)returnmax_student_total_scoredefget_classNo_chinese_avg_score(self):

student_chinese_score=[]for i inself.students:

student_chinese_score.append(i.get_chinese_score())return sum(student_chinese_score)/len(self.students)defget_classNo_math_avg_score(self):

student_math_score=[]for i inself.students:

student_math_score.append(i.get_math_score())return sum(student_math_score)/len(self.students)#学生类

classStudent(object):def __init__(self,name,grade_class_no):

self.name=name

self.grade_class_no=grade_class_no

self.__chinese_score=None

self.__math_score=None

self.__total_score=Nonedefset_chinese_score(self,score):if score>=0 and score<=100 andisinstance(score,(int,float)):

self.__chinese_score=scoreelse:print ("你输入的分数不是数字类型,或者不在0-100分数的范围内")defget_chinese_score(self):return self.__chinese_score

defset_math_score(self,score):if score>=0 and score<=100 andisinstance(score,(int,float)):

self.__math_score=scoreelse:print ("你输入的分数不是数字类型,或者不在0-100分数的范围内")defget_math_score(self):return self.__math_score

defget_student_total_score(self):

self.__total_score=self.__chinese_score+self.__math_score

return self.__total_score

defget_student_avg_score(self):return sum([self.__chinese_score,self.__math_score])/2

defget_student_max_score(self):return max(self.__chinese_score,self.__math_score)if __name__ == "__main__":

s= Student("zita","三年二班")

s.set_chinese_score(100)

s.set_math_score(80)print ("%s的平均分是:%s"%(s.name,s.get_student_avg_score()),",","%s的总分是:%s"%(s.name,s.get_student_total_score()),",","%s的最高分是:%s"%(s.name,s.get_student_max_score()))

t= Student("tim","三年二班")

t.set_chinese_score(88)

t.set_math_score(62)print ("%s的平均分是:%s"%(t.name,t.get_student_avg_score()),",","%s的总分是:%s"%(t.name,t.get_student_total_score()),",","%s的最高分是:%s"%(t.name,t.get_student_max_score()))

c=Class_NO("三年二班")

c.add_student(s)

c.add_student(t)print ("%s总分最高分是:%s"%(c.get_grade_class_name(),c.get__classNo_max_total_score()))print ("%s语文学科平均分是:%s"%(c.get_grade_class_name(),c.get_classNo_chinese_avg_score()))print ("%s数学学科平均分是:%s"%(c.get_grade_class_name(),c.get_classNo_math_avg_score()))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值