【发布时间】:2011-11-20 08:23:14
【问题描述】:
我已经编写了几乎所有的程序,除了我被困在这个特定的部分。我需要写出一个平均值来计算所有学生的最终成绩作为课程的统计数据。学生姓名和最终成绩已附加到外部文件中(请注意,可以附加更多学生和成绩)。
这是我目前所拥有的,任何意见都非常感谢。
fname = input("What is the file name?")
file1 = open(fname,'r')
sum = 0.0
count = 0
for line in file1:
sum = sum + eval(line)
count = count + 1
print("\nThe average of the numbers is", sum/count)
在第 6 行 (sum = sum + eval(line)) 我不断收到
syntax error: unexpected EOF while parsing (<string>, line 1)
我对 Python 的了解还不够,无法知道这意味着什么。有人可以用代码告诉我吗?供参考的外部文件格式如下:
tom jones,100,
bill smith,89,
等等。
【问题讨论】:
-
评估这条线毫无意义。从行中解析整数。 (或者,如果它们实际上是用逗号而不是整数分割的,那么用逗号分割并迭代它并解析出整数。)
-
eval?啊! (我引用了一个在 JavaScript 社区中广泛使用的表达方式:“eval is evil”。) -
您可能想要使用
csv模块。 -
现在看到格式是什么,你应该做什么,Emily Ball,循环遍历每一行(正是你在做什么),然后用逗号分割。第一个元素(0 索引)将是您的数字,您可以将其添加到 sum。 docs.python.org/library/stdtypes.html#str.split 编辑:克里斯是对的。使用 csv 模块会更容易,因为它会正确解析内部有逗号等的引号。
标签: python-3.x