#student的成绩等级与通过条件
#这个为下面代码的前置条件
class Student:
def __init__(self,name='',grade=0):
self.name=name
self.grade=grade
def setName(self,name):
self.name=name
def setGrade(self,grade):
self.grade=grade
def getName(self):
return self.name
def show(self):
print('%s\t %s'%(self.name,self.calcLevel()))
class LevelSt(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 'F'
class PassSt(Student):
def calcLevel(self):
if self.grade>=60:
return '通过'
else:
return '不通过'
#######################################################
两者是分开的文件,但是可以自行合并
#######################################################
#需要前置代码的帮助
import sys
sys.path.append(r"student的保存位置") #注意位置一定要填对
import student
def main():
listOfSt=list_St()
display(listOfSt)
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.LevelSt(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()