求大佬帮做Python题啊QAQ 感谢
1、在学生类中增加一个学生综合学业成绩的属性,属性名为GPA。GPA的取值范围为0.0~5.0,要求在输入这个属性时需进行检查GPA属性的合法性;
2、修改class StudentList的__update和update两个函数,当用户输入学号时检查这个学生是否存在,当该生存在时,先显示该生的信息,然后才继续输入修改该生的信息;
3、增加保存学生信息到文件命令save,和从文件加载学生信息的命令load。保存学生信息的文件名为StudentInfo.txt;
原代码如下:
lass Student:
def __init__(self,No,Name,Gender,Age):
self.No=No
self.Name=Name
self.Gender=Gender
self.Age=Age
def show(self):
print("%-16s %-16s %-8s %-4d" %(self.No,self.Name,self.Gender,self.Age))
class StudentList:
def __init__(self):
self.students=[]
def show(self):
print("%-16s %-16s %-8s %-4s"%("No","Name","Gender","Age"))
for s in self.students:
s.show()
def __insert(self,s):
i=0
while (i<len(self.students) and s.No>self.students[i].No):
i=i+1
if (i<len(self.students) and s.No==self.students[i].No):
print(s.No+"已经存在")
return False
self.students.insert(i,s)
print("添加成功")
return True
def __update(self,s):
flag=False
for i in range(len(self.students)):
if (s.No==self.students[i].No):
self.students[i].Name=s.Name
self.students[i].Gender=s.Gender
self.students[i].Age=s.Age
print("修改成功")
flag=True
break
if (not flag):
print("没有这个学生")
return flag
def __delete(self,No):
flag=False
for i in range(len(self.students)):
if (self.students[i].No == No):
del self.students[i]
print("删除成功")
flag=True
break
if (not flag):
print("没有这个学生")
return flag
def delete(self):
No=input("No=")
if(No!=""):
self.__delete(No)
def insert(self):
No=input("No=")
Name=input("Name=")
while True:
Gender=input("Gender=")
if(Gender=="男" or Gender=="女"):
break
else:
print ("Gender is not vaild")
Age=input("Age=")
if(Age==""):
Age=0
else:
Age=int(Age)
if No!="" and Name!="":
self.__insert(Student(No,Name,Gender,Age))
else:
print("学号、姓名不能为空")
def update(self):
No=input("No=")
Name=input("Name=")
while True:
Gender=input("Gender=")
if(Gender=="男" or Gender=="女"):
break
else:
print("Gender is not valid")
Age=input("Age=")
if(Age==""):
Age=0
else:
Age=int(Age)
if No!="" and Name!="":
self.__update(Student(No,Name,Gender,Age))
else:
print("学号、姓名不能为空")
def process(self):
while True:
s = input(">")
if (s == "show"):
self.show()
elif (s =="insert"):
self.insert()
elif (s =="update"):
self.update()
elif (s == "delete"):
self.delete()
elif (s == "exit"):
break
else:
print("show: show students")
print("insert: insert a new student")
print("update: insert a new student")
print("delete: delete a student")
print("exit: exit")
st=StudentList()
st.process()