安迪Python

V1

2022/05/31阅读:37主题:默认主题

习题解答:将学生的各科考试成绩保存为csv文件格式

Python习题解答:将学生的各科考试成绩写入csv文件

1.题目要求

将学生的各科考试成绩保存为csv文件格式。

2.设计要求

(1)已知学生的学号和各科成绩:

data = [
    ['99100'90,  1009180,],
    ['99101'89,  95,  9980],
    ['99102'87,  90,  67100],
    ['99103'10099,  9590],
    ['99104'78,  80,  8688]
]

(2)计算每位学生的总分,连同各科成绩,一起写入文件“PY_08_06_Scores.csv”。

(3)将文件“PY_08_06_Scores.csv”中的首行设置为标题行,字段名称分别为'学号', '语文', '数学', '英语', 'python', '总分'。

3.设计思路

(1)采用列表嵌套方法,存放学号以及对应的成绩。

(2)采用writer对象的writerowa方法写入文件。

# 导入CSV模块
import csv 

# 新建嵌套列表data存储学号和成绩
data = [
    ['99100'90,  1009180,],
    ['99101'89,  95,  9980],
    ['99102'87,  90,  67100],
    ['99103'10099,  9590],
    ['99104'78,  80,  8688]
]

# 用for循环计算依次计算每个学生的总成绩
for i in range(5):
    # 总成绩=每个子列表后4个元素的和
    # data[i]依次取出子列表
    # [1:5]取出子列表中的第2个至第5个元素
    # sum函数计算子列表的和
    total_score = sum(data[i][1:5])
    # append函数向列表增加元素
    data[i].append(total_score)
# 查看最终生成的列表
#print(data)

# 新建head变量存储标题行
head = ['学号''语文''数学''英语''python''总分']

# 以自动关闭文件的方式写入
# PY_08_06_Scores.csv文件路径(和代码在同一文件夹)
# w写入方式
# encoding='utf-8'编码方式
# newline=''去除CSV文件中的空行
with open('PY_08_06_Scores.csv''w', encoding='utf-8', newline=''as f:
    
    # 调用模块的类:模块名.类名()
    csv_writer = csv.writer(f)
    # 写入标题
    csv_writer.writerow(head)
   
    for i in range(5):
        # 调用类中的方法:对象.方法名()
        # writerow每次只能写入一行
        csv_writer.writerow(data[i])
    
print('写入完毕!')

【终端输出】

写入完毕!

writerow每次只能写入一行,所以用for循环依次取出列表中的子列表

for i in range(5):
        # 调用类中的方法:对象.方法名()
        # writerow每次只能写入一行
        csv_writer.writerow(data[i])

writerows一次性写入多行:

csv_writer.writerow(data)

分类:

后端

标签:

后端

作者介绍

安迪Python
V1