Lia*_*lle 4 python file-io average
在我的数据文件中
60,66,88,90,44,90,80,77
所有数字都在一行中
这是我的代码,它没有给我平均数字
inFile3 = open("data2.txt","r")
global gradeVar
gradeVar = len(gradeArray)
global Total
Total = 0
for Numbers in inFile3:
Total = Total + int(Numbers)
inFile3.close()
global averageVar
averageVar = Total/gradeVar
return averageVar
Run Code Online (Sandbox Code Playgroud)
这是错误
Traceback (most recent call last):
File "program.py", line 81, in <module>
main()
File "program.py", line 5, in main
averageVar = Average()
File "program.py", line 39, in Average
Total = Total + int(Numbers)
ValueError: invalid literal for int() with base 10: '60,66,88,90,44,90,80,77\n'
Run Code Online (Sandbox Code Playgroud)
你的问题在这里:
for Numbers in inFile3:
Total = Total + int(Numbers)
Run Code Online (Sandbox Code Playgroud)
Numbers 在上面的代码中是一个行列表,而不是一个数字列表.
for Line in inFile3:
for number in Line.split(','):
Total = Total + int(number)
Run Code Online (Sandbox Code Playgroud)
应该有所帮助
您也不需要像在Python中那样预先声明变量.事实上,除非你知道自己在做什么以及为什么这样做,否则在全球范围内这样做是非常危险的.
编辑:如果您在行的末尾有逗号,则可以将最后一行更改为:
if number.strip():
Total = Total + int(number)
Run Code Online (Sandbox Code Playgroud)
这将忽略任何否则会引发错误的"空"数字字符串.