我已经写了一段代码,可以从 文本文件并生成数字列表
我的挑战是对连续的数字求和,然后找到 数字的平均值
我不允许使用sum函数,而且我是python新手。。 这是我到目前为止写的代码
我可以通过列表添加什么
fh = open(fname)
for line in fh:
if line.startswith("X-DSPAM-Confidence:") : continue
# print(line)
count = 0
for line in fh:
if line.startswith("X-DSPAM-Confidence:"):
count = count + 1
# print(count)
for line in fh:
if line.startswith("X-DSPAM-Confidence:"):
# print(line)
xpos = line.find(' ')
# print(xpos)
num = line[xpos : ]
# print(float(num))
fnum = float(num)
# print(fnum)
total = 0
for i in fnum:
total += int(i)
print(total)
错误:“第24行的浮点对象不可编辑”。。。第24行是第4个for循环
fnum
是一个浮点数。它不是数组,因此它是不可iterable的,并且不能在for循环中迭代您可能不需要数组来确定总数和平均数:
在这种情况下,您不必使用startsWith。最好对文件的每一行使用拆分。每一行将把所有单词拆分成一个列表。然后使用您查找的索引,X-DSPAM-Confidence:。如果存在,则取相应的兴趣值。在这种情况下,它是索引编号1。代码如下:
我将您的数据保存在一个名为“dat.txt”的文本文件中
希望对你有帮助
首先,一个打开的文件只可编辑一次,代码显示4个以
for line in fh:
开头的循环。在第一个循环之后,文件指针将到达文件的末尾,下面的循环应该立即返回。因此with
应该是首选接下来在循环中的某个地方,您将在
fnum
中获得一个浮点值。只需在启动循环之前初始化total
,并在得到它时添加fnum
:with
确保文件在循环结束时完全关闭相关问题 更多 >
编程相关推荐