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 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题