【发布时间】:2017-10-02 20:09:35
【问题描述】:
在对网站上已经存在的其他问题进行了一些研究后,我的程序仍然出现错误。我想找到从文本文件中获取的列表的平均值。 文本文件的布局如下:
0
dyl
1
john
2
ryan
3
Chelsey
4
bob
5
dan
这是我的代码:
a = open("stats.txt","r")
b = a.read().splitlines()
newvar = []
newvar.extend(b[0::2])
avg = sum(newvar)/len(newvar)
print(avg)
我得到的结果是:TypeError: unsupported operand type(s) for +: 'int' and 'str'
【问题讨论】:
-
错误是正确的 -
splitlines将文件内容作为字符串列表读取。因此,即使您的行包含一个数字,由于这种用法,它实际上也是一个字符串。您要做的是将包含数字(即偶数)的行转换为整数,并分别保存。然后你应该能够获得平均值。 -
列表
b由什么组成?整数和字符串交错? 没有。 你读了一个文件,你得到了什么?一堆字节。妥善处理它们是你的工作(即转换为整数)。 -
您可能只是研究了该错误以找出它的含义。这是一个非常简单的方法
-
关于如何执行此操作的任何建议?我是 python 作为一种语言的新手。我来自 C# 基本背景,其中明确提供了变量数据类型。
-
RSon 我做了,那是我最初的搜索。这导致我看到其他让我感到困惑的帖子。