t_jh = [12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15]
for j in range(len(t_jh)):
print(j)
BLh_tjh = HCR * (tah - t_jh[j]) / tah *Qcr_2a
BLh_tjhs.append(BLh_tjh)
if t_jh[j] >= 5.5:
if t_jh[j] >= tdh:
Phmin_tjh = Phmin_tdh + (Phmin_tah - Phmin_tdh) / (tah - tdh) * (t_jh[j] - tdh)
Phmin_tjhs.append(Phmin_tjh)
Qhmin_tjh = Qhmin_n85 + (Qh_min - Qhmin_n85) / (7 - (-8.5)) * (t_jh[j] - (-8.5))
Qhmin_tjhs.append(Qhmin_tjh)
XB_tjh = BLh_tjhs[j] / Qhmin_tjhs[j]
XB_tjhs.append(XB_tjh)
PLFB_tjh = 1 - HCD * (1 - XB_tjhs[j])
PLFB_tjhs.append(PLFB_tjh)
PhB_tjh_1 = XB_tjhs[j] * Phmin_tjhs[j] / PLFB_tjhs[j] * n_jh[j]
PhB_tjhs_1.append(PhB_tjh_1)
if tch < t_jh[j] < tdh:
Phm_tch = Phm_n85 + (Phm - Phm_n85) / (7 - (-8.5)) * (tch - (-8.5))
Phm_tjh = Phm_tch + (Phmin_tdh - Phm_tch) / (tdh - tch) * (t_jh[j] - tch)
Phm_tjhs.append(Phm_tjh)
PhB_tjh_2 = Phm_tjhs[j] * n_jh[j]
PhB_tjhs_2.append(PhB_tjh_2)
目前完全没有头绪,因为之前也是这么写的但是没有出现过类似的问题。
想要了解为什么在这个循环中循环变量会变成0-5,以及如何得到我想要的数组长度的循环变量,谢谢!
逻辑有问题
BLh_tjh = HCR * (tah - t_jh[j]) / tah *Qcr_2a
BLh_tjhs.append(BLh_tjh) //每次循环这里追加元素
if t_jh[j] >= 5.5:
if t_jh[j] >= tdh:
Phmin_tjh = Phmin_tdh + (Phmin_tah - Phmin_tdh) / (tah - tdh) * (t_jh[j] - tdh)
Phmin_tjhs.append(Phmin_tjh)
Qhmin_tjh = Qhmin_n85 + (Qh_min - Qhmin_n85) / (7 - (-8.5)) * (t_jh[j] - (-8.5))
Qhmin_tjhs.append(Qhmin_tjh)//每次满足条件才会追加元素
XB_tjh = BLh_tjhs[j] / Qhmin_tjhs[j] //这里怎么保证Qhmin_tjhs[j]的j不越界?
//比如j循环了5次,但是Qhmin_tjhs.append只执行了2次,Qhmin_tjhs[5]不就越界了吗?
你目前得报错就是循环超出范围,你看看你207行得循环是怎么写的
最近我自己找到了解决办法,只需要在for循环外先把数组全部值都算出来,再用for循环根据要求进行比较就不会报错了。