Python编写学生类计算年龄、成绩等级


1. 题目🔍

编写个学生类Student

  • 包含姓名、出生日期和成绩属性(数据成员);
  • 包含一个用于给定数据成员初始值的构造函数
  • 包含一个可计算学生年龄的方法(学生年龄判断根据日期是否超过生日的年、月、日);
  • 包含一个将成绩对应成等级的方法
  • 包含一个输出“姓名+年龄+成绩等级”的方法

1.1 输入样例1

Name: LindaSilk
Birth: 2016-08-24
Grade(0~100): 99

1.2 输出样例1

姓名: LindaSilk  年龄: 3  成绩:

1.3 输入样例2

Name: 林大夕可
Birth: 2000-02-29
Grade(0~100): 85

1.4 输出样例2

姓名: 林大夕可  年龄: 20  成绩:

2. 题解✨

2.1 代码

from datetime import date


class Student:
    def __init__(self, name, birth, grade):
        self.name = name
        self.birth = birth
        self.grade = grade

    def calculate_age(self):
        today = date.today()									# 获取今天的日期
        year, month, day = map(int, self.birth.split('-'))		# 将birth以'-'拆分储存为年、月、日
        age = (today.year - year - ((today.month, today.day) < (month, day)))
        return age

    def classify(self):
        dic = {
            '优': [90, 100],
            '良': [80, 89],
            '中': [70, 79],
            '及格': [60, 69],
            '不及格': [0, 59]
        }														# 用字典方法判断等级
        for k, v in dic.items():
            if v[0] <= self.grade <= v[1]:
                return k

    def out(self):
        print('姓名: {}  年龄: {}  成绩: {}'.format(self.name, self.calculate_age(), self.classify()))


name = input('Name: ')
birth = input('Birth: ')
grade = input('Grade(0~100): ')

s1 = Student(name, birth, int(grade))
s1.out()														# 调用Student类中的out方法

相关内容

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读