求助:Python代码出现IndexError: list assignment index out of range错误
解决IndexError: list assignment index out of range错误
错误核心原因
Tr、Pr、k都是空列表,Python中空列表不存在任何索引位置,直接用Tr[i] = ...这类索引赋值方式会触发索引越界错误,必须用append()方法向列表中添加元素。
其他潜在问题及修复
- 循环范围错误:原代码
range(0,1)只执行一次循环,但Tc、Pc、w都包含2个元素,应改为range(2)遍历所有组分。 - Pr计算错误:原代码
P / Pc中Pc是列表,需取对应索引的元素Pc[i]。 - 缺少模块导入:使用
math.exp()但未导入math模块,会触发NameError。
修复后的完整代码
import math z = [0.5, 0.4] P = 500 # pisa T = 400 # Ranking Tc = [343.01, 549.58] Pc = [667.03, 706.62] w = [0.011, 0.099] kij = [[0, -0.0026], [-0.0026, 0]] Tr = [] Pr = [] k = [] for i in range(2): tr_val = T / Tc[i] Tr.append(tr_val) pr_val = P / Pc[i] Pr.append(pr_val) k_val = math.exp(5.37 * (1 + w[i]) * (1 - (1 / tr_val))) / pr_val k.append(k_val) print(k)
内容的提问来源于stack exchange,提问作者a m
相关产品推荐
相关产品推荐

