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方法
看到这里,相信聪明的你已经基本掌握了编写学生类计算年龄、成绩等级的方法。✿✿ヽ(°▽°)ノ✿
那么… 不如去听听我的歌放松一下叭~😂
相关内容