我正试图通过数组从txt文件中获取平均值和总数。我要显示txt文件,但由于某些原因,我无法将字符串转换为int。我可以得到要转换为int的行值,而不是数字数组。我不断收到错误,说参数必须是字符串或数字,而不是列表。我将代码设置为no的方式是,它只是不断地添加第一个数字,而不是之后的下一个数字。我对编程相当陌生,这个程序看起来很简单,但我无法理解这一部分。任何帮助都将不胜感激。
发布于 2014-04-04 00:57:57
您的代码有很多改进。你甚至可以用一行来做这件事,但我认为这会更清楚:
total = 0.0
counter = 0
for line in open('numbers.dat', 'r'):
total += int(line)
counter += 1
print 'Total', total
print 'Average', total/counter因此,由于一个文件是可迭代,所以可以使用for in迭代它。其余的代码是显而易见的。
发布于 2014-04-04 15:18:40
我认为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) / counterhttps://stackoverflow.com/questions/22851519
复制相似问题