首页 > 解决方案 > 如何让python每(x)秒执行一次函数?

问题描述

我正在学习 python,并且正在尝试制作(多么原创)一个疾病模型,其中绿球反弹,如果红球碰到它们,它们就会被红色感染。我试图让它每隔 x 秒,每个受感染的红球都有可能死亡并变黑,但我不知道该怎么做。我曾尝试使用 pygame 的时钟,但无法弄清楚。

这是模具功能

def die(particle_list):
    for i in particle_list:
        if (i.colour == red) and random.choice([1,1,1,1,1,1,1,1,1,1,1,1,1,1,0])==0:
            i.colour = black 

标签: pythontimetiming

解决方案


使用time.sleep方法。它将在给定的秒数内阻止程序执行。

我还想指出,最好对这样的概率使用随机数。在您的示例中,您的粒子有 15 分之一的机会死亡,因此您希望生成一个从 0 到 1 的随机数,并且该数字低于 0.066666667(1 / 15),粒子将死亡。

这个例子会做你想做的事:

import random

def die(particle_list, death_rate):
    for particle in particle_list:
        if random.random() <= death_rate:
            particle.color = black

推荐阅读