Regex Python27 TypeError:类型+='int'和'str'的操作数不受支持
请帮我了解这里发生了什么。我的目标是创建一个函数,读取input.txt并返回文本文档中每行的最小值、最大值和平均值。文件内容如下:Regex Python27 TypeError:类型+='int'和'str'的操作数不受支持,regex,python-2.7,Regex,Python 2.7,请帮我了解这里发生了什么。我的目标是创建一个函数,读取input.txt并返回文本文档中每行的最小值、最大值和平均值。文件内容如下: min:1,2,3,4,5,6 max:1,2,3,4,5,6 avg:1,2,3,4,5,6 我的代码如下所示: import re def process(): file = open("input.txt", "r") for line in file: newL = re.findall("\d+", line)
min:1,2,3,4,5,6
max:1,2,3,4,5,6
avg:1,2,3,4,5,6
我的代码如下所示:
import re
def process():
file = open("input.txt", "r")
for line in file:
newL = re.findall("\d+", line)
minimum = min(newL)
maximum = max(newL)
length = len(newL)
numSum = sum(newL)
print newL
print minimum
print maximum
print length
print numSum
file.close()
process()
def sum(xs):
total = 0
for x in xs:
total += x
return total
除了numSum(它给出标题中提到的错误)之外,所有内容都打印得很好。re.findall返回字符串列表,类似于[foo,bar,baz]。sum的实现是这样的:
import re
def process():
file = open("input.txt", "r")
for line in file:
newL = re.findall("\d+", line)
minimum = min(newL)
maximum = max(newL)
length = len(newL)
numSum = sum(newL)
print newL
print minimum
print maximum
print length
print numSum
file.close()
process()
def sum(xs):
total = 0
for x in xs:
total += x
return total
因此,在某个时候,它会尝试执行一行,比如total=0+foo,然后就结束了,因为Python不知道如何向字符串添加int。您知道所有字符串实际上都包含int这一事实并不重要,因为表达式1+'1'的计算结果可能是'11'或'2',Python不会猜出是哪个
当你阅读每一行时,你应该把每一个字符串都转换成一个int。这应该可以解决你的问题@ZeroPiraeus,事实上,我想要一个更简单的例子。鉴于OP看起来很新,这很可能是一个家庭作业问题,我不想只是分发解决方案。非常感谢。我添加了一个列表理解,将所有字符串转换为整数,结果成功了。”newL2=[intitem for item in newL]@Muzi,不用担心。如果这个答案解决了您的问题,您可能希望以绿色勾号接受它。您也可能会发现编辑我的答案以包含您的解决方案是有建设性的。可能的