【发布时间】:2013-03-24 03:48:57
【问题描述】:
i = float (raw_input("Enter i"))
Pd = int (raw_input("Enter Pd"))
while True:
P1= (i-6.95)/(2*9.68*0.0001)
P2= (i-7.051)/(2*7.378*0.0001)
P3= (i-6.531)/(2*1.04*0.001)
e= Pd-P1-P2-P3
if e<=1 :
F1=9.68*0.0001*P1*P1 + 6.95*P1 + 749.55
F2=7.738*0.0001*P2*P2 + 7.051*P2 + 1285
F3=1.04*0.001*P3*P3 + 6.531*P3 + 1531
F= F1+F2+F3
print 'Total cost F is {0}\n'.format(F)
print P1
print P2
print P3
break
else :
i=i + 0.1(i)
我写了一个这样的简单while循环来计算电力需求和发电量。输入电力需求 Pd #和增量成本。我可以计算每个发电机的输出 P1 P2 和 P3。需要一个迭代#这是当 Pd-P1 P2 和 P3 的总和应该小于 1 时。
当我通过输入 i=8.5 和 pd=2500 运行它时,结果是 800.619834711981.973434535、946.634615385。这意味着#事物永远不会迭代,因为这三个的总和不是 2500。
谁能告诉我为什么不迭代以及我的 while true 循环有什么问题。
【问题讨论】:
-
这是干什么用的:
i=i + 0.1(i)-- 0.1 是一个浮点数,你不能将它作为函数调用
标签: python loops while-loop iteration