学生信息csv

2.2.编写一个学生类,
具有以下属性:

类属性 
role,赋值'student'

实例属性:
信息列表, 包含: 学号,姓名,性别,年龄,成绩列表

类方法:
更改类属性值

实例方法:
构造函数
打印学生信息函数
修改学生信息函数



main函数主体:
创建学生类信息空列表,
输入学生信息,
将学生信息放入学生类信息列表
将该列表写入到一个cvs文件中保存

1.代码:

import csv
class Student:
    role = "student"

    def __init__(self, id, name, gender, age, scores):
        self.id = id
        self.name = name
        self.gender = gender
        self.age = age
        self.scores = scores

    def print_1(self):
        print(f"学号:{self.id},姓名:{self.name},性别:{self.gender},年龄:{self.age},成绩:{self.scores}")

def main():
    students = []
    while True:
        id = input("请输入学号(输入t退出):")
        if id == 't':
            break
        name = input("请输入姓名:")
        gender = input("请输入性别:")
        age = input("请输入年龄:")
        scores_input = input("请输入成绩(用逗号分隔):")
        scores = list(map(int, scores_input.split(',')))  # 假设成绩是整数并用逗号分隔
        student = Student(id, name, gender, age, scores)
        students.append(student)
        for student in students:
            student.print_1()

        # 循环结束后一次性写入 CSV 文件
    with open('students.csv', 'w', newline='',encoding='utf-8') as csvfile:
        fieldnames = ['学号', '姓名', '性别', '年龄', '成绩']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
        for student in students:
            writer.writerow({'学号': student.id, '姓名': student.name, '性别': student.gender, '年龄': student.age,
                             '成绩': ','.join(map(str, student.scores))})  # 将成绩列表转换回逗号分隔的字符串

if __name__ == "__main__":
    main()

  1. 截图:

分析:类定义 Student

Student 类定义了一个学生对象,包含属性如 idnamegenderage, 和 scores

role 是一个类变量,但在这个脚本中并没有使用到。

__init__ 方法用于初始化学生的信息。

print_1 方法用于打印学生的所有信息。

main 函数

初始化一个空列表 students 来保存所有的学生对象。

使用 while 循环持续获取用户输入的学生信息,直到用户输入 t

在每次循环中,代码会:

1.获取用户输入的学生信息。

2.将成绩字符串(逗号分隔)转换为整数列表。

3.创建一个 Student 对象并添加到 students 列表中。

4.打印出当前 students 列表中的所有学生信息(包括新添加的学生)。

退出 while 循环后,代码会:

1.打开一个名为 students.csv 的文件以写入模式。

2.创建一个 csv.DictWriter 对象来写入CSV文件。

3.写入CSV文件的表头。

4.遍历 students 列表,并将每个学生的信息写入CSV文件。注意,成绩列表被转换回逗号分隔的字符串格式。

newline='',encoding='utf-8')

确保csv文件能储存中文

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值