导入csv,通过创建学生类,定义类属性;再创建构造方法,定义实例属性;将学生信息写入csv文件中,通过主函数将学生信息录入,最后就能运行出结果。
import csv class Student: role='student' def __init__(self,xuehao,name,gender,age,grade): #self.xuehao=xuehao #self.name=name #self.gender=gender #self.age=age #self.grade=grade这些信息都不必再写,直接将xuehao,name等信息存入到列表中,如下 self.info_list=[xuehao,name,gender,age,grade] with open('sx.csv', 'w', newline='', encoding='utf-8') as csvfile: fieldnames = ['学号', '姓名', '性别', '年龄', '成绩'] writer = csv.writer(csvfile, fieldnames=fieldnames) writer.writeheader() # csv文件的写入 @classmethod def study(cls,new_role): cls.role=new_role def print_student_message(self): print(f"学生姓名:{self.name},学号:{self.xuehao},性别:{self.gender},年龄:{self.age},成绩:{self.grade}") def update_message(self,new_xuehao=None,new_name=None,new_gender=None,new_age=None,new_grade=None): if new_xuehao is not None: self.xuehao=new_xuehao if new_name is not None: self.name=new_name if new_gender is not None: self.gender=new_gender if new_age is not None: self.age=new_age if new_grade is not None: self.grade=new_grade def main(): sx=[] while True: xuehao=input("请输入学号或输入'q'时退出:") if xuehao.lower()=='q': break name=input("请输入姓名:") gender=input("请输入性别:") age=input("请输入年龄:") grade=input("请输入成绩:") #student=Student(xuehao, name, gender, age, grade) #sx.append(student) students_info = {'学号': xuehao, '姓名': name, '性别': gender, '年龄': age, '成绩': grade} message = students_info print(message) print('录入完毕') if __name__=="__main__": main()
最终运行结果如下: