【发布时间】:2013-02-15 23:52:17
【问题描述】:
我正在尝试使用 python 打开一个文件,以便从文件 input.txt 中获取平均值。取平均值后,它们必须显示在每个人的姓名之后,例如
<student>'s score is <avg> bacons.
我们还没有在课堂上讨论过这个,所以我不太确定我在做什么。我假设我们应该使用循环,但我不确定我将如何实现它。
这是代码,它不断返回该 avg 作为无效语法:
def main():
inFile = open("input.txt","r")
numVals = int(inFile.readline())
name = inFile.readline()
number = float(int(inFile.readline().split())
avg = float(int(number[0]* .3 + number[1]* .1 + number[2]* .6))
print("name[0 , len(name)]'s Score is",avg,"bacons.")
inFile.close()
main()
输入文件包含
5
Amelia
90 100 75
George
87 90 90
Adam
100 80 85
Jenny
75 80 90
Carl
86 87 88
对此的任何帮助将不胜感激。我不知道该怎么办。
【问题讨论】:
-
“试图使用 inFile”是什么意思?是否有一些名为“inFile”的库或程序,或者你只是说你想命名你的变量或其他东西? (另外,我看到您已将“infile”添加为标签,但该标签没有任何描述。)
-
同时,永远不要说“不断返回那个 avg 是无效的语法”。向我们展示实际的
SyntaxError,并带有回溯。 -
N 个数字的平均值(或算术平均值)是 sum(numbers)/N 而不是
float(int(number[0]* .3 + number[1]* .1 + number[2]* .6)),如果有的话,它是某种加权平均值(或平均值)。
标签: for-loop python-3.x average load-data-infile