运行代码sol[i] = solussaum(x[i])时报float对象不可下标错误如何解决
错误本质说明
'float' object is not subscriptable错误触发的核心逻辑是:代码尝试对浮点型数值使用下标索引操作(即[序号]的写法),仅列表、数组、字符串这类序列类对象支持下标索引,单个浮点数不支持该操作。
你给出的报错对应代码行是sol[i] = solussaum(x[i]),问题只会出在三个位置:
sol被赋值为单个浮点数,而非预期的列表/数组,执行sol[i]赋值操作时触发报错x被赋值为单个浮点数,而非预期的列表/数组,执行x[i]取值操作时触发报错solussaum()函数内部存在对浮点型变量的索引操作,函数运行时抛出该错误
排查修复方案
因为你确认代码此前可以正常运行,优先排查运行前的变量赋值改动:
- 在报错行前插入
print(type(x), x),确认x在运行时的类型是否为列表/数组,若为浮点数,回溯x的赋值逻辑,修正为对应的序列类型 - 在报错行前插入
print(type(sol), sol),确认sol在运行时的类型是否为列表/数组,若为浮点数,回溯sol的初始化、重赋值逻辑,修正为对应的序列类型 - 检查
solussaum()函数的入参、内部逻辑,确认没有对浮点型变量做索引访问的错误写法
内容的提问来源于stack exchange,提问作者LUCAS AROUCK
相关产品推荐
相关产品推荐

