学生信息的创建,首先要进行学生类的创建,已知录入学生信息,所需要的属性有:学号,姓名,性别,年龄,成绩。所以我们先进行实例属性的设计:
import csv class Student: role="student" def __init__(self, id, name, gender, age, grade): self.id = id self.name = name self.gender = gender self.age = age self.grade = grade
学生信息录入的方法还需要以下功能:打印学生信息和修改学生信息两种重要的方法。打印方法直接用过format来进行输出将所有的信息输出
def show(self):#信息的打印方法 print("学号:%s,姓名:%s,性别:%s,年龄:%s,成绩:%s"%(self.id,self.name,self.gender,self.age,self.grade))
在修改新的的方法中可提供用户多个选择,来进行决定修改哪一个属性,达到改变的功能。
def modify(self):#信息的更改方法 i = int(input("请输入你想改变的项目:1.学号2.姓名3.性别4.年龄5.成绩")) if i == 1: a = input("你想改成") self.id = a elif i == 2: a = input("你想改成") self.name = a elif i == 3: a = input("你想改成") self.gender = a elif i == 4: a = input("你想改成") self.age = a elif i == 5: a = input("你想改成") self.grade= a else: return self return self
定义主方法,首先要知道所需要录入的学生信息到底有几个,定义一个空的学生列表然后利用while循环的方式进行多次的信息输入,将输入的信息作为变量信息输入所定义的方法之中,将所有的学生信息存入空列表之中
def main():#定义主方法 n=int(input("请输入你需要录入学生的人数")) i=0 studentList=[] #进行循环输入学生信息 while i<n: id = input("请输入学号:") name = input("请输入姓名:") gender = input("请输入性别:") age = int(input("请输入年龄:")) grade = int(input("请输入成绩:")) print("----------") #将输入的信息输入,调用方法 student = Student(id, name, gender, age, grade) studentList.append(student) i+=1
将所有的学生信息输入完后可进行定义是否需要修改,若有需要改调用学生类中的修改方法进行指定学号的修改。学号输入后遍历所有学生的学号若存在就进行相关修改。
#调用modify,进行信息的更改 ii = input("请输入你想改变的信息的学号,没有该学号则默认不更改") for student in studentList: if student.id==ii: student.modify()
最后当所有的信息完成录入后,import csv,文件打开后用w模式可以进行文件的写入。先进行文件表头的设计包括学生类中的所有属性,writer.writeheader将表头写入。最后用for函数遍历学生信息列表中的所有的元素,将其属性进行对应的填入,达到学生信息写入的目的。
最后,将main方法进行输出,可以达成最终的学生信息写入csv文件的功能。