mmmjun253 2021-11-16 19:31 采纳率: 100%
浏览 19
已结题

怎样把这一串代码改成class形式

怎样把这一串代码改成class形式

ef student_score(name, chinese, math, english, science):
    return {"name": name, "chinese": chinese, "math": math, "english": english, "science": science}

def score_sum(student):
    return student["chinese"] + student["math"] + student["english"] + student["science"]

def score_avg(student):
    return score_sum(student)/4

def score_print(student):
    return print(student["name"], score_sum(student), score_avg(student), sep="\t")


# 女学生名单.
students_women = [
   student_score("PING", 64, 88, 92, 92 )
    student_score("BASMA", 64, 88, 92, 92 ),
    student_score("MEIJUN", 64, 88, 92, 92 ),
    student_score("WENQI", 64, 88, 92, 92 ),
    student_score("ZHILING", 64, 88, 92, 92 ),
    student_score("JINHUA", 64, 88, 92, 92 ),
    student_score("DO", 64, 88, 92, 92 )
]

# 男学生名单.
students_men = [
    student_score("HAIMING", 64, 88, 92, 92 ),
    student_score("ZHENG", 64, 88, 92, 92 ),
    student_score("KONG", 64, 88, 92, 92 )
]

# 重复女学生名单.
print("女学生分数")
print("名字", "总分", "平均分", sep="\t")

for student in students_women:
    score_print(student)
    
# 重复男学生名单.
print("\n男学生分手")
print("名字", "总分", "平均分", sep="\t")

for student in students_men:
    score_print(student)   
    

  • 写回答

1条回答 默认 最新

  • Mnioc 2021-11-16 21:04
    关注
    
    class Student():
        
        def __init__(self, name, chinese, math, english, science):
            self.name = name
            self.chinese = chinese
            self.math = math
            self.english = english
            self.science = science
        
        def score_sum(self):
            return self.chinese + self.math + self.english + self.science
     
        def score_avg(self):
            return self.score_sum() / 4
     
        def score_print(self, ):
            return print(self.name, self.score_sum(), self.score_avg(), sep="\t")
    
    
    # 女学生名单.
    students_women = [
        Student("PING", 64, 88, 92, 92 ),
        Student("BASMA", 64, 88, 92, 92 ),
        Student("MEIJUN", 64, 88, 92, 92 ),
        Student("WENQI", 64, 88, 92, 92 ),
        Student("ZHILING", 64, 88, 92, 92 ),
        Student("JINHUA", 64, 88, 92, 92 ),
        Student("DO", 64, 88, 92, 92 )
    ]
     
    # 男学生名单.
    students_men = [
        Student("HAIMING", 64, 88, 92, 92 ),
        Student("ZHENG", 64, 88, 92, 92 ),
        Student("KONG", 64, 88, 92, 92 )
    ]
     
    # 重复女学生名单.
    print("女学生分数")
    print("名字", "总分", "平均分", sep="\t")
     
    for student in students_women:
        student.score_print()
        
    # 重复男学生名单.
    print("\n男学生分数")
    print("名字", "总分", "平均分", sep="\t")
     
    for student in students_men:
        student.score_print()   
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么