You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python报错TypeError: int与str无法执行+=运算的原因及解决

错误原因分析

报错TypeError: unsupported operand type(s) for +=: 'int' and 'str'的核心问题是:执行result += num时,num是字符串类型,而result是整数,两者无法直接做加法运算。你给出的测试用例[1,2,3,4,5]全是整数,但实际运行时传入的列表里肯定混了字符串形式的数字(比如['1', '2', '3']),才会触发这个错误。

解决方法

有两种实用的处理方式:

方式一:保证输入列表全为整数

检查调用sum_evens时传入的参数,把所有元素都改成整数类型,示例:

print(sum_evens([1, 2, 3, 4, 5]))  # 全整数列表,正常执行

方式二:在函数内部兼容字符串类型的数字

如果没法确保输入全是整数,可以在函数里先把每个元素转为整数再判断,同时处理转换失败的情况:

def sum_evens(numbers):
    result = 0
    for num in numbers:
        try:
            num_int = int(num)
            if num_int % 2 == 0:
                result += num_int
        except ValueError:
            # 遇到不能转成整数的元素,直接跳过
            continue
    return result

# 测试包含字符串数字的列表
print(sum_evens(['1', 2, '3', 4, '5']))  # 输出6

内容的提问来源于stack exchange,提问作者Abhishek Tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:25:22