需要帮助在python中计算一组数字的平均值

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)

mav*_*vnn 5

你的问题在这里:

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)

这将忽略任何否则会引发错误的"空"数字字符串.