问题描述
我试图不使用 csv
模块,因为我的老师是,我认为,指出如何使用这种简单的可能较旧的迭代方法。我知道他输入了 casted 或更改了一些 int 以便添加一个 csv 文件总数。该文件的语法是 (name("string"),grade(int)) 作为 csv。这是 csv 文件的一行:
Andrew,69,52,32,83,22,33,77,34
它当然是逗号分隔的。我已经能够让它在没有标题的情况下打印出数字,但是我缺少一些能够添加成绩的东西。我现在得到的错误是这样的:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我现在的代码是:
f = open("lab0604.csv","r+")
f.readline()
for line in f:
x = line.split(",")
for i in x:`
print(sum(i[2:]))
关于如何解决这个问题的任何想法将不胜感激。我仍然不熟悉 SO 的格式规则,所以我知道我的缩进有点偏离,但我知道它不是缩进。谢谢你的帮助。我认为这只是一个演员阵容,我在正确的地方失踪了。再次感谢我可能得到的任何帮助。
解决方法
更好的方法 -
f = open("lab0604.csv","r+")
f.readline()
for line in f:
x = line.split(",")
for i in x:`
grades = 0
for i in mylist:
if type(i) == type(0):
grades = i + grades
print(grades)
列表理解(一行或几乎一行)-
for i in x:
a = [b for b in mylist if type(b) == type(0)]
print(sum(a))
,
f = open("lab0604.csv","r+")
f.readline()
for line in f:
x = line.split(",")
print(sum(int(number) for number in x[1:])) # the first element`s index is 0