python:模拟终止

时间:2014-04-21 11:32:51

标签: python python-3.x

我刚才有一个简单的问题,对于下面的模拟,如果一个事件发生,让我们说出生会自动增加time_elapsed,还是会死亡并检查死亡是否会发生并做到这一点?

while time_elapsed < end_time :
    event=birth () +death () +infection()
    choice=random.random()*event
    choice -= birth()
    time_elapsed += random.expovariate(event)

    if choice < 0 :
        do_birth()
        continue
    choice -= death()
    if choice < 0:
        do_death()
        continue
    choice -= total_infection_rate()
    if choice < 0:
        do_infection()
        continue

1 个答案:

答案 0 :(得分:0)

在上面的代码中,它将检查所有条件状态,直到任何一个评估为True。如果是,它将执行该块中的代码,然后continue将跳回循环的开头,跳过所有其他if语句(无论它们是否都是True 1}}或不)。如果您只想执行其中一种情况,则可以执行以下操作:

if number >= 0:
    print('Number is positive')
else:
    print('Number is negative')

在这里,python将评估if number >= 0块,如果它是True,它将打印'Number is positive',然后跳过else语句。如果if number >= 0块已评估为False,则python将只执行else块中的代码,然后继续。

对于更详细的案例,您还可以使用elif。这是一个类似的例子:

if number > 0:
    print('Number is positive')
elif number < 0:
    print('Number is negative')
else:
    print('Number is 0')

它遵循相同的逻辑。 Python将从块的顶部开始,并继续评估if / elif块中的每个条件,直到任何条件评估为True,此时它将执行该块下的代码然后跳过该组中的所有其他条件语句。