Python循环计算无法运行:TypeError报错问题求助
解决Python代码中的TypeError: 'int' object is not iterable错误
嘿,我一眼就发现问题所在了——你遇到的这个TypeError完全是变量名重复使用导致的冲突!
问题根源
你最初定义了列表MT = [2,3,4,5,6,7],但在最内层的循环里,你写了:
for MT in MTBR:
这行代码会把原本指向列表的MT变量,重新赋值为MTBR里的每一个数值元素(比如第一次循环是7.5,然后是8,直到最后变成6)。
当第一轮完整的嵌套循环执行完后,MT已经不是原来的列表了,而是变成了MTBR的最后一个元素——整数6。这时候下一次外层循环执行到for m in MT:时,Python尝试去迭代一个整数6,自然就抛出了TypeError: 'int' object is not iterable的错误。
修正后的代码
只需要把最内层循环的变量名改成和MT不冲突的名字,比如mtbr_val就可以了:
QPA=[4,5,6,7,8,9] MT=[2,3,4,5,6,7] WH=[225,226,230,225,220,222] Prd=[24,24,24,24,24,24] MTBR=[7.5,8,9,7,5,6] mean_value=[] for q in QPA: for m in MT: for w in WH: for mtbr_val in MTBR: # 这里把变量名改成mtbr_val,避免覆盖MT列表 mean_v = q * m * w * 24 / (mtbr_val * 1000) mean_value.append(mean_v) print(mean_value)
额外小优化
另外,你一开始定义的mean_v=[]其实没用到,可以直接删掉,代码会更简洁~
内容的提问来源于stack exchange,提问作者IndigoChild
相关产品推荐
相关产品推荐

