Thonny环境运行Python代码出现str与int不支持+操作的报错求助
报错原因与修复方案
触发Unsupported operand types for + ("str" and "int")报错的核心原因是Python是强类型语言,不支持字符串类型和整数类型直接做加法运算,不会自动隐式转换类型。
代码中的具体问题定位
- 定义
numbers列表时,所有数字都加了英文引号,列表内的元素实际都是字符串类型,比如"1"的类型是str,不是整数1 - 循环内执行
numbers[index] + 19时,加号左侧是字符串类型的列表元素,右侧是整数19,两者类型不兼容,直接触发运行时报错 - 手动维护
index变量追踪列表下标的写法冗余,本身也增加了下标越界的出错风险
可直接复用的修正代码
两种修改方向都能正常运行:
- 方案1:保留原列表的字符串定义,取元素时显式做类型转换,同时简化循环逻辑,去掉冗余的index变量:
numbers = ["1", "2", "3", "4", "5", "6"] print(numbers) for num in numbers: print(int(num) + 19)
运行后会依次输出20、21、22……25的运算结果,符合预期。
- 方案2:从定义列表的源头调整,去掉每个数字两侧的引号,让列表元素直接存储整数类型:
numbers = [1, 2, 3, 4, 5, 6] print(numbers) index = 0 for i in numbers: print(numbers[index] + 19) index = index + 1
这种写法不需要额外做类型转换,原循环逻辑可以直接跑通。
注意:如果列表内的字符串不是合法的纯数字格式,直接用
int()转换会触发新的类型转换报错,转换前需要确认元素内容的合法性。
内容的提问来源于stack exchange,提问作者Galaxy - Among us
相关产品推荐
相关产品推荐

