Python:如何继续运行程序,直到某个值变为0并检查所需的时间

时间:2015-07-11 00:20:20

标签: python if-statement for-loop

我有以下代码:

{{1}}

A,B,C和D的值固定为0.1,0.01,0.01,0.00009。 pred是20,猎物是1000.我试图计算出pred成为0所需的时间(整数,不是浮点数),然后显示那个时间。

逻辑上,我可以认为它是从0开始运行公式...如果pred大于0而不是重复,直到pred为0或小于0来停止并显示时间。不确定我做错了什么。

请尽量保持基本。我希望能够使用带有条件语句的for循环并使用Python 2.7语法来完成它。

编辑:对不起,如果有什么事让人困惑。我想计算循环运行的时间段(在这种情况下将是迭代次数),直到pred等于0.但是,一旦它等于0,则应该将pred视为0。 1甚至0.999都是0。

4 个答案:

答案 0 :(得分:0)

这是我手机上的一个草率回答:

if flag.NArg() < minArgs { 
    // do something
    ...
}

道歉,如果这种答案有点缺乏,因为我没有可用的IDE来验证我的语法。

答案 1 :(得分:0)

你应该使用while循环。如果设置doc = { 1: { 5: { end: [8,9,10] }, 7: { end: [11,14,42] }, end: [81, 13, 42] } }

,您的for循环甚至都不会启动
time_counter = 0

这将持续到time_counter = 0 while pred > 0: prey, pred = int(prey*(1+A-B*pred)), int(pred*(1-C+D*prey)) time_counter +=1 print time_counter 。虽然它不会计算函数的时间,而是计算pred <= 0 pred所需的循环次数

答案 2 :(得分:0)

实际上,while循环工作但是我需要在公式运行之前添加int标签才能进行适当的评估。否则,我会进入大于0的非常微小的值(想想1 * 10 ^ -9),一旦它无法处理小值,程序就会结束。

答案 3 :(得分:-1)

这就是我要做的事情:

time_counter = 0
while pred > 0:
    prey, pred = prey*(1+A-B*pred), pred*(1-C+D*prey)
    print prey, pred
    time_counter +=1
    print time_counter