文件操作设计实践

编写一个学生类具有以下属性:
类属性role,赋值'student'
实例属性:
信息列表,包含: 学号,姓名,性别,年龄,成绩列表

类方法:
更改类属性值

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

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

(1)程序代码(程序运行最终正确代码):

(2)程序结果(截图Alt+PrtSc):

(3)程序分析(程序运行错误修改或运行结果分析):

  1. 选择功能:代码首先等待用户输入一个选择(choice),这个选择决定了程序将执行哪个功能(录入信息或修改信息)。
  2. 录入信息(choice == 1
    • 如果用户选择录入信息,代码将执行一个循环,使用 writer.writerow() 将学生信息(假设已经存储在 student1.inform 中)逐行写入CSV文件。这里假设 student1.inform 是一个包含多个字典的列表,每个字典代表一个学生的信息。
  3. 修改信息(choice == 2
    • 如果用户选择修改信息,代码将执行以下步骤:
      • 读取CSV文件的内容到一个列表 new_inform 中,列表中的每个元素是一个字典,代表一个学生的信息。
      • 提示用户输入要修改的学生编号、要修改的字段和新的内容。
      • 创建一个 Student 对象 student2,使用 new_inform 列表初始化。但是,这里存在一个逻辑上的疑问,因为 Student 类的初始化和 update 方法并没有在代码中给出,所以我们假设 Student 类有相应的方法来更新学生的信息。
      • 调用 student2.update() 方法来更新学生的信息(尽管具体实现没有在代码中给出)。
      • 重新打开CSV文件以写入模式,并创建一个 csv.DictWriter 对象来写入更新后的学生信息。
      • 写入CSV文件的头部,并遍历 new_inform 列表(这里实际上应该遍历更新后的学生信息列表,但代码中使用了 student2.inform,这可能是一个错误,因为 student2.update() 方法并没有修改 student2.inform)。
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值