Python 关于while-true循环 i=float(原始输入(“输入i”)) Pd=int(原始输入(“输入Pd”)) 尽管如此: 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 如果e

Python 关于while-true循环 i=float(原始输入(“输入i”)) Pd=int(原始输入(“输入Pd”)) 尽管如此: 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 如果e,python,loops,while-loop,iteration,Python,Loops,While Loop,Iteration,在第一次迭代中,e的值是-229.22788463,那么您就打破了循环 从Python文档中: break语句与C中的语句一样,从for或while循环中的最小包围圈中分离出来 根据你的问题: 需要一个迭代#当Pd为P1 P2和P3之和时,应小于1 我想你应该通过以下公式计算e: i = float (raw_input("Enter i")) Pd = int (raw_input("Enter Pd")) while True: P1= (i-6.95)/(2*9.68*0.000

在第一次迭代中,e的值是-229.22788463,那么您就打破了循环

从Python文档中:

break
语句与C中的语句一样,从
for
while
循环中的最小包围圈中分离出来

根据你的问题:

需要一个迭代#当Pd为P1 P2和P3之和时,应小于1

我想你应该通过以下公式计算e:

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)
不过还不清楚。也许你只是想让你的if语句:

e = Pd - (P1 + P2 + P3)
如果(P1+P2+P3)
这是干什么用的:
i=i+0.1(i)
--0.1是一个浮点数,你不能把它当作函数调用喂,它不工作。答案仍然是800.619834711981.973434535946.634615385。显然,把它们加在一起是不够的
if (P1 + P2 + P3) < Pd: