函数输出值的Python和

2024-09-22 18:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个名为Solfec的Python应用程序中有以下函数:

n0 = 330

n1 = 1027

n2 = 1201

n3 = 1023


def make_rock (x, y, z, r, kind, material, solfec):      
    m = randint (8, 64)     
    points = [ ]

    for n in range (m):        
        points.append (x + r * (1.0 - random()))        
        points.append (y + r * (1.0 - random()))        
        points.append (z + r * (1.0 - random()))          

    hull = HULL (points, 1, 1)
    rocks = BODY (solfec, kind, hull, material)

SURFACE_MATERIAL (solfec, model = 'SIGNORINI_COULOMB', friction = 0.5)

bulk = BULK_MATERIAL (solfec, 'KIRCHHOFF', young = 1.5E5, poisson = 0.25, density = 2.6E-6)

 # choose the rock radius(r,r1,r2,r3):

r = 16

r1 = 13

r2 = 11

r3 = 10


aint = int(w - 10)

bint = int(d - 10)

cint0 = int(p*n0/16)

cint1 = int(p*n1/16)

cint2 = int(p*n2/16)

cint3 = int(p*n3/16)


for a in range (10, aint, 30):

  for b in range (10 , bint , 30):

    for c in range (20 , 20 + cint0, p):

        make_rock (a, b, c, r, 'RIGID', bulk, solfec)


    for a1 in range (10, aint, 30):

     for b1 in range (10, bint, 30):

      for c1 in range (50, 50 + cint1, p):

        make_rock (a1, b1, c1, r1, 'RIGID', bulk, solfec)


    for a2 in range (10, aint, 30):

     for b2 in range (10, bint, 30):

      for c2 in range (40, 40 + cint2, p):

        make_rock (a2, b2, c2, r2, 'RIGID', bulk, solfec)


     for a3 in range (10, aint, 30):

       for b3 in range (10, bint, 30):

        for c3 in range (30, 30 + cint3, p):

         make_rock (a3, b3, c3, r3, 'RIGID', bulk, solfec)  

它通过for循环创建某种几何对象并为其指定一些属性(外壳、主体)。在

我使用的应用程序允许我通过以下方式输出创建的每个实体的体积:

^{pr2}$

所以如果我写下:

print rocks.volume 

我得到了所有卷的打印清单。在

我需要把这些值加起来,我怎么做?如果我使用:

print sum(rocks.volume)

我得到float对象不可编辑。在

所以我想我需要创建所有这些输出值的唯一列表,然后用普通的sum()命令对它们进行汇总。在


Tags: informakerangerandombulkpointsint
1条回答
网友
1楼 · 发布于 2024-09-22 18:20:33

假设你有一张清单,上面有你可以做的事情:

    sum((rock.volume for rock in rocks_list))

如果你没有,那么我们需要更多关于这个方法的剩余代码的信息(例如,它返回什么,它在哪里被调用),以及你需要在哪里计算这个和以及多久计算一次。在

我会根据你的评论来编辑我的答案,但是如果你只是编辑你的问题,提供make\u rock方法中的所有代码以及你调用它的地方,这还是会容易得多。现在,如果您只需要所能完成的卷的总和:

^{pr2}$

在制作摇滚乐的最后,请确保你有:

    return rocks.volume

相关问题 更多 >