这第一行有效,我得到V(i)= V + QIN(i)-QOUT(i),但当我尝试做的时候 T(i)=(T + C(i)+ TIN(i)* QIN(i))/((C(i)+ QIN(i)),我怎样才能循环每个C [i],
QOUT=[1.0, 3.0, 1.0, 2.0]
QIN=[2.0, 3.0, 5.0, 2.0]
TIN=[10.0,12.0,13.0, 12.0]
V=[2.0, 4.0, 5.0]
T=[10.0, 11.0, 12.0]
#4 iterations
#V(i) = V+QIN(i)-QOUT(i)
lineNum=0
for line in range(len(QIN)):
C = []
for i in range(len(V)):
C.append(V[i]+QIN[line]-QOUT[lineNum])
lineNum +=1
print C
lineNum=0
for t1 in range(len(TIN)):
Tx=[]
for c in range(len(C)):
for i in range(len(T)):
Tx.append((T[i]*C[c]+TIN[t1]*QIN[lineNum])/(C[c]+QIN[lineNum]))
lineNum +=1
print Tx
答案 0 :(得分:1)
抱歉无法发布图片。 缩进问题在第19,21,23,25,29行 - 在任何编辑器中切换特殊字符,您将看到它们。 但问题的真正原因在于重用numlines变量,因此它会引发IndexError。 可能的解决方案:
QOUT=[1.0, 3.0, 1.0, 2.0]
QIN=[2.0, 3.0, 5.0, 2.0]
TIN=[10.0,12.0,13.0, 12.0]
V=[2.0, 4.0, 5.0]
T=[10.0, 11.0, 12.0]
for q_in, q_out in zip(QIN, QOUT):
C = [v + q_in - q_out for v in V]
print C
lineNum=0
for t1 in range(len(TIN)):
Tx=[]
for c in range(len(C)):
for i in range(len(T)):
Tx.append((T[i]*C[c]+TIN[t1]*QIN[lineNum])/(C[c]+QIN[lineNum]))
lineNum +=1
print Tx
我认为你真的打算在这种背景下使用亚麻布......
PS:范围内的t1(len(TIN)):......部分需要展开,但我现在没有这个精神
答案 1 :(得分:0)
也许是这样的:
QOUT=[1.0, 3.0, 1.0, 2.0]
QIN=[2.0, 3.0, 5.0, 2.0]
TIN=[10.0,12.0,13.0, 12.0]
V=[2.0, 4.0, 5.0]
T=[10.0, 11.0, 12.0]
#4 iterations
#V(i) = V+QIN(i)-QOUT(i)
for i in range(len(QIN)):
C = []
for v in V:
C.append(v + QIN[i] - QOUT[i])
print C
lineNum = 0
for t1 in TIN:
Tx = []
for c in C:
for t in T:
Tx.append((t * c + t1 * QIN[lineNum]) / (c + QIN[lineNum]))
lineNum += 1
print Tx
如果将lineNum设置为0,则在循环
中的代码中递增它lineNum=0
for line in range(len(QIN)):
C = []
for i in range(len(V)):
C.append(V[i]+QIN[line]-QOUT[lineNum])
lineNum +=1
print C
lineNum=0 #here
我猜你不想嵌套这些循环:
for t1 in TIN:
Tx = []
for c in C:
for t in T:
在第一个。