我编写了一个代码,用于读取文件并打印文件中所有数字的总和。
例如一个包含(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 问题,但没有运气。对我来说一切都很好,我无法发现哪里出了问题。
任何帮助或反馈将不胜感激,谢谢!
答案 0 :(得分:0)
sum 是 Python 中的内置函数,您不应将其用作变量。行 sum=line
正在创建问题。您可以使用变量 total
而不是 sum。