python sum() 函数在使用时返回 [TypeError: 'str' object is not callable]

时间:2021-03-20 07:51:38

标签: python sum typeerror

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

例如一个包含(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

我检查了一些关于这个问题的文章和其他 stackoverflow 问题,但没有运气。对我来说一切都很好,我无法发现哪里出了问题。

任何帮助或反馈将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

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