我在写一个代码来计算家庭平均收入,还有多少家庭生活在贫困线以下。在
这是我目前为止的代码
def povertyLevel():
inFile = open('program10.txt', 'r')
outFile = open('program10-out.txt', 'w')
outFile.write(str("%12s %12s %15s\n" % ("Account #", "Income", "Members")))
lineRead = inFile.readline() # Read first record
while lineRead != '': # While there are more records
words = lineRead.split() # Split the records into substrings
acctNum = int(words[0]) # Convert first substring to integer
annualIncome = float(words[1]) # Convert second substring to float
members = int(words[2]) # Convert third substring to integer
outFile.write(str("%10d %15.2f %10d\n" % (acctNum, annualIncome, members)))
lineRead = inFile.readline() # Read next record
# Close the file.
inFile.close() # Close file
povertyLevel()
我试着找出年平均收入,我想做的是
平均值=(总和(年收入)/长度(年收入)) 输出文件.写入(avgIncome)
我是在while lineRead里面做的。但是它给了我一个错误
平均值=(总和(年收入)/长度(年收入)) TypeError:“float”对象不可读取
目前,我正试图找出哪个家庭的收入超过平均水平。在
avgIncome
需要一个sequence(例如^{annualIncome
是一个float
:在我看来,你想建立一个清单:
^{pr2}$(请注意,对于
avgIncome
调用,我少了一个缩进级别。)另外,一旦你成功了,我强烈建议你去https://codereview.stackexchange.com/旅行。你可以得到很多关于改善这一点的反馈。在
编辑:
根据你的编辑,我的建议仍然有效。在进行比较之前,您需要先计算平均值。一旦你有了平均值,你需要再次循环数据来比较每一个收入。注意:我建议以某种方式为第二个循环保存数据,而不是重新分析文件。(您甚至可能希望将读取数据与计算平均值完全分开)这可能最好使用新对象或
namedtuple
或dict
来完成。在sum()和len()都以iterable作为参数。阅读python文档以了解关于iterables的更多信息。你把一个float作为参数传递给他们。得到浮点数的和或长度意味着什么?即使在编码的世界之外思考,也很难理解这一点。在
似乎您需要回顾python类型的基础知识。在
相关问题 更多 >
编程相关推荐