Python 有没有一种方法可以同时运行while x次

Python 有没有一种方法可以同时运行while x次,python,python-3.x,Python,Python 3.x,我有一个while循环,某个东西有99个生命,我希望它随机“击中”它直到0,现在我想这样做,比如说一百万次来检查差异。有没有办法同时进行多个“模拟”?有点像在机器学习中,老师同时教多个学生 现在我只添加了一个for语句,所以我在while循环中迭代了一百万次。但这可能需要一段时间 例如: 随机导入 hp=99 对于范围内的n(1000000): 当hp>0时: hp-=random.randint(0,10) 我希望它必须在while循环时迭代更少的次数,或者如果可能的话只迭代一次,除非出于某

我有一个while循环,某个东西有99个生命,我希望它随机“击中”它直到0,现在我想这样做,比如说一百万次来检查差异。有没有办法同时进行多个“模拟”?有点像在机器学习中,老师同时教多个学生

现在我只添加了一个for语句,所以我在while循环中迭代了一百万次。但这可能需要一段时间

例如:

随机导入
hp=99
对于范围内的n(1000000):
当hp>0时:
hp-=random.randint(0,10)
我希望它必须在while循环时迭代更少的次数,或者如果可能的话只迭代一次,除非出于某种原因,这实际上需要比上面的代码更长的时间


提前感谢。

您可以使用多处理同时运行函数n次

下面是一个示例,它在4个内核上运行函数n次,并将消耗生命值所需的平均“滴答声”打印为0

from multiprocessing import Pool
import random

def depleteHp(input):
    hp = 99
    ticks = 0
    while hp > 0:
        ticks += 1
        hp -=  random.randint(0,10)
    return ticks

if __name__ == '__main__':
    pool = Pool(processes=4)
    n = 1000
    inputs = range(n)
    # calc depleteHp output using 4 processes
    out_list = pool.map(depleteHp, inputs)
    # average  
    print (sum(out_list) / float(n))
map(函数,输入列表)将函数映射到n个处理器上,每次为“输入列表”的下一项提供数据。因此,在这种情况下,它将数字0到1000馈送到EHP功能


out\u list每次都会存储一个返回值列表。

您应该了解线程或多重处理,但这是整个教程的主题,无法在此处找到答案。嗯,好的,我会四处看看。谢谢你的建议如果你是多处理/多线程方面的新手,你可能想看看谢谢你,这对学习很有帮助。当我在函数中打印时,有时在输出中,它会在同一行打印记号,后面有空格,这有什么原因吗?或者这可能只是因为IDE im使用(pycharm)示例:
18121019320