我有一个数字列表,我想遍历所有这些列表并做下面的计算。在跳过数值的同时跳过python中的列表
将这些值中的每一个都加到load demand
并从available power
中减去。我的代码迭代到某个点并停止计算。
num = [5,2,1,2,8,1,2]
Pa = 130 #available power
Ld = 100 #total load demad
Pn = 0 #new power request
node =0
for number in num:
Pa -= num[node]
Ld += num[node]
if Pa >= Ld:
Pna = Pa
Lnd = Ld
Pn += num[node]
#print "new added value is : ", Pn
node += 1
print "Available power : ", Pna
print "Demand power : ", Lnd
输出是
Available power : 120
Demand power : 110
这迭代到第5个元素停,我想保持迭代从6元,而跳过Pa >= Ld
变为假值。
我是Python新手,所以我的编码结构可能不好。有没有一种方法可以使用for
和if
循环或其他方法来满足我的要求?
在此先感谢
是什么让你觉得它停止迭代?你在每次迭代时递减'Pa'并增加'Ld';因为'num'只包含正数,所以一旦'Pa> = Ld'为假,那个'if'语句的主体将永远不会再执行。在循环完成后查看'Pa','Ld'和'node'的值。 – chepner
此代码是否正确缩进? – kouty
是的,这就是我想要了解的。我想继续迭代,同时跳过'Pa> = Ld'变成虚假的值 – Sachith