python - 需要帮助在 python 中找到一组数字的平均值

标签 python average file-io

在我的数据文件中有

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 

这是错误

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'

最佳答案

你的问题在这里:

for Numbers in inFile3: 
        Total = Total + int(Numbers)
上面代码中的

Numbers是行列表,而不是数字列表。

for Line in inFile3:
    for number in Line.split(','):
        Total = Total + int(number)

应该有帮助。

您也无需像在 Python 中那样预先声明变量。事实上,除非您知道自己在做什么以及为什么这样做,否则使用 global 这样做是非常危险的。

编辑: 如果您在行尾有一个逗号,您可以将最后一行更改为空白值:

        if number.strip():
            Total = Total + int(number)

这将忽略任何否则会引发错误的“空”数字字符串。

关于python - 需要帮助在 python 中找到一组数字的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118509/

相关文章:

mysql - 使用来自单独 MySQL 表的 2 列计算平均时间

python - Python 中列表的平均值

mysql - 在输出 MySQL 中添加列平均值

Python read() 似乎返回的数据少于它读取的数据

python - Z3py:打印包含 144 个变量的大型公式

python - 我可以使用 "unaliased"属性名称初始化 pydantic 模型吗?

python - 确定哪个版本的 OpenCV

Python:在 pandas 中计数后对日期进行排序

file-io - 将临时文件连接到 tcl 中的单个文件

linux - 在文件中查找一行并在 bash 中的行末添加一些内容