Python:+= 不支持的操作数类型:'int' 和 'str'



我试图在Python中实现一个函数,该函数将以整数列表作为输入,并返回列表中所有偶数的总和。我已经写了下面的代码,但是当我试图运行它时,它给了我一个错误。

def sum_evens(numbers):
result = 0
for num in numbers:
if num % 2 == 0:
result += num
return result
print(sum_evens([1, 2, 3, 4, 5]))

我得到的错误信息是:

TypeError: unsupported operand type(s) for +=: 'int' and 'str'.

有人能帮我理解为什么这个错误发生,我怎么能解决它?

你的代码在我的电脑上运行良好。但是,根据您的错误消息猜测,num一定是一个字符串。您可以通过事先将其转换为整数来解决此问题:

def sum_evens(numbers):
result = 0
for num in numbers:
# convert to integer
num = int(num)
if num % 2 == 0:
result += num
return result

使用列表推导概念(函数式范例)的另一种选择:

def sum_evens(numbers):
return sum(int(num) for num in numbers if int(num) % 2 == 0)

最新更新