我试图通过数组获取txt文件的平均值和总数。我得到了txt文件显示但由于某种原因我无法将字符串转换为int。我可以获取行值转换为int而不是数字数组。我不断收到错误,说参数必须是字符串或数字而不是列表。我设置代码的方式不是它只是继续添加第一个数字而不是之后的下一个数字。我对编程很新,这个程序看起来很简单,但我不能把这部分搞清楚。任何帮助将不胜感激。
答案 0 :(得分:0)
您的代码有很多改进。你甚至可以在一行中做到这一点,但我认为这将更清楚:
total = 0.0
counter = 0
for line in open('numbers.dat', 'r'):
total += int(line)
counter += 1
print 'Total', total
print 'Average', total/counter
因此,由于文件为iterable,您可以使用for in
进行迭代。其余代码很明显。
答案 1 :(得分:0)
我认为enrmarc在正确的轨道上,但是通过使用with语句和枚举来计算项目,代码可能更加Pythonic。
with open("numbers.dat") as f:
total = 0
for counter, line in enumerate(f):
total += int(line)
counter += 1
print "Total", counter
print "Average", float(total) / counter