python sum() 函数在使用时返回 [TypeError: 'str' 对象不可调用]



我编写了一个代码,读取文件并打印文件中包含的所有数字的总和。

例如,包含(text.txt(的txt文件

10in the 134 fill23
and 100cars 3in 42

将返回312

首先,我做了一个短代码,看起来像这个

import re
f = open("text.txt")
numbs = re.findall('[0-9]+', f.read())
numbsls = []
for i in range(0,len(numbs)): numbsls.append(int(numbs[i]))
print(sum(numbsls))

此代码运行良好。接下来,我修改了代码,使其能够逐行读取文本。(为了以后处理的灵活性(看起来是这样的。

import re
f = open("text.txt")
t = True
numbsls = []
for line in f:
line = line.rstrip()
numbs = re.findall('[0-9]+', line)
if t:
sum = line
t = False
for i in range(0,len(numbs)):
numbsls.append(int(numbs[i]))
print(sum(numbsls))

但当我运行代码时,它返回了这个回溯

line 16, in <module> print(sum(numbsls)) TypeError: 'str' object is not callable

我检查了一些文章和其他关于这个问题的堆叠式问题,但运气不好。对我来说,一切看起来都很好,我看不出哪里出了问题。

如有任何帮助或反馈,我们将不胜感激,谢谢!

sum是python中的一个内置函数,不应将其用作变量。sum=line行正在创建问题。您可以使用变量total而不是sum。

相关内容

最新更新