Python:+=不支持的操作数类型:“整型”和“字符串”

mklgxw1f  于 2022-12-28  发布在  Python
关注(0)|答案(2)|浏览(143)

我尝试在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'.

有人能帮助我了解为什么会出现此错误以及如何修复它吗?

4ngedf3f

4ngedf3f1#

您的代码在我的计算机上运行良好。但是,根据您的错误信息推测,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
ljsrvy3e

ljsrvy3e2#

使用列表理解概念的另一个替代方案(功能范式):

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

相关问题