Python从列表选取元素进行简单计算的报错问题求助
解决方法:找到运算符并计算前后数字之和
直接用enumerate()遍历列表,同时获取元素的索引和值,找到'+'后取其前后位置的元素转成数字计算:
x = ['1','+','2','-','3'] for idx, item in enumerate(x): if item == '+': # 将前后的数字字符串转为整数后相加 num1 = int(x[idx - 1]) num2 = int(x[idx + 1]) total = num1 + num2 print(f"计算结果:{total}") # 找到目标运算符后可退出循环,避免无效遍历 break
错误原因分析
- 第一次报错
TypeError:是因为你直接拿字符串类型的元素做算术运算,必须先把数字字符串用int()或float()转成数值类型才能计算。 - 第二次报错
ValueError:是因为你错误地尝试将运算符'+'本身转成数字,正确的做法是取运算符前一个索引和后一个索引对应的元素,而不是运算符所在位置的元素。
如果列表中有多个'+',只需去掉代码中的break,就能遍历计算所有符合条件的结果。
内容的提问来源于stack exchange,提问作者Tar-Eruntalion
相关产品推荐
相关产品推荐

