构造方法创建学生信息并存入CSV文件

学生信息的创建,首先要进行学生类的创建,已知录入学生信息,所需要的属性有:学号,姓名,性别,年龄,成绩。所以我们先进行实例属性的设计:

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文件的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值