BLUEMING 发表于 2021-3-28 09:32:05

算平均分的代码纠错

fi = open("score.csv","r")
fo = open("avg-score.txt","w")
ls = []
x = []
sum = 0
for row in fi:
    ls.append(row.strip("\n").split(","))
for line in ls:
    for i in line:
      sum += int(i)
      avg = sum/3
    x.append(avg)
    sum=0
fo.write("语文:{:.2f}\n数学:{:.2f}\n英语:{:.2f}\n物理:{:.2f}\n科学:{:.2f}\n".format(x,x,x,x,x))
fi.close()
fo.close()

报错:avg没defined

BLUEMING 发表于 2021-3-28 09:34:29

本帖最后由 BLUEMING 于 2021-3-28 09:36 编辑


课程名        1月        2月        3月
语文        89        95        88
数学        77        87        100
英语        86        78        93
物理        56        67        79
科学        73        84        86

CSV文件

suchocolate 发表于 2021-3-28 10:43:26

本帖最后由 suchocolate 于 2021-3-28 10:47 编辑

报错看起来像line内容是空的,没有进入循环就没有avg。
csv原始文件是用逗号作分隔符吗,如果是的话,直接用csv读取就行了:import csv
with open('test.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:
      print(row)

csv原始文件内容贴一下。

BLUEMING 发表于 2021-3-28 11:03:40

suchocolate 发表于 2021-3-28 10:43
报错看起来像line内容是空的,没有进入循环就没有avg。
csv原始文件是用逗号作分隔符吗,如果是的话, ...

是二楼那种,直接转成表格

suchocolate 发表于 2021-3-28 11:06:21

本帖最后由 suchocolate 于 2021-3-28 11:12 编辑

BLUEMING 发表于 2021-3-28 11:03
是二楼那种,直接转成表格

二楼不是原始文件吧,如果二楼是原始文件的话,那么写split(',')就是不对的。
你还是把原始文件让我们看看。
另外你的代码里,split里是中文的逗号,你核实一下吧,csv分隔符一般不会是很长的空格。

BLUEMING 发表于 2021-3-28 11:12:45

suchocolate 发表于 2021-3-28 11:06
二楼不是原始文件吧,如果二楼是原始文件的话,那么写split(',')就是不对的。
你还是把原始文件让我们看 ...

file:///D:/KSWJJ/66000001/score.csv
这样能看到嘛

suchocolate 发表于 2021-3-28 11:22:15

BLUEMING 发表于 2021-3-28 11:12
file:///D:/KSWJJ/66000001/score.csv
这样能看到嘛

看不到。
用记事本打开csv,复制之后把内容贴上来吧。

BLUEMING 发表于 2021-3-28 14:08:35

suchocolate 发表于 2021-3-28 11:22
看不到。
用记事本打开csv,复制之后把内容贴上来吧。

课程名,1月,2月,3月
语文,89,95,88
数学,77,87,100
英语,86,78,93
物理,56,67,79
科学,73,84,86

有逗号的,我的逗号写错了{:5_98:}
页: [1]
查看完整版本: 算平均分的代码纠错