代码1:
#student.py #定义student父类 class Student: def __init__(self,name=' ',grade=0): self.name=name self.grade=grade def setName(self,name): self.name=name def setGrade(delf,grade): self.grade=gradge def getName(self): return self.name def show(self): print('%s\t %s'%(self.name,self.calcLevel())) #定义student 子类(根据成绩计算等级) class LeveISt(Student): def calcLevel(self): if self.grade>=90: return 'A' elif self.grade>=80: return 'B' elif self.grade>=70: return 'C' elif self.grade>=60: return 'D' else: return 'E' #定义student子类(根据成绩判断是否通过) class PassSt(Student): def calcLevel(self): if self.grade>=60: return '通过' else: return '不通过' 代码2:
import sys sys.path.append('D:/xuexi/pyrenwu/第9周素材/demo') import Student def list_St(): listOfSt=[] flag='Y' while flag=='Y': name=input('请输入名字:') grade=float(input('请输入成绩:')) choice=input('请选择(L or P):') if choice.upper()=='L': s=Student.LeveISt(name,grade) else: s=Student.PassSt(name,grade) listOfSt.append(s) flag=input('继续?(y/n):').upper() return listOfSt def display(listOfSt): print('\n姓名 \t 等级') listOfSt.sort(key=lambda x:x.getName()) for each in listOfSt: each.show() def main(): listOfSt=list_St() display(listOfSt) main()
结果: