-1

我是 python 和一般编程的新手,我正在做我的计算物理学的最终项目,并且在获得允许我实例化 n 个粒子的结构时遇到了麻烦,每个粒子都具有属性 x,y,vx, & 维。这一切都在建立一个理想的气体模拟,最终将被插入到恒星聚变模型中。任何帮助将不胜感激。这是我到目前为止所拥有的。

    import random

    atoms = 10
    x = 1000
    y = 1000
    vx = 1000
    vy = 1000
    t = 1
    n = 10000
    b = 0   
    dt = 10
    particle = [x, y, vx, vy]
    system = [particle]
    for i in range(atoms):
        system.append(i)

        for system[i] in range(atoms):
            particle.x = x * random.uniform(0.1, 0.9999)
            particle.y = y * random.uniform(0.1, 0.9999)
            particle.vx = vx * random.uniform(0.1, 0.9999)
            particle.vy = vy * random.uniform(0.1, 0.9999)

        for particle[i] in range(atoms):    
                for t in range(dt):
                    x = x + vx
                    y = y + vy
                    if y < 0:
                        y = -y
                        vy = -vy

                    if x < 0:
                        x = -x
                        vx = -vx

                    if y > 10:
                        m = y - 10
                        y = 10 - m
                        vy = -vy

                    if x > 10:
                        k = x - 10
                        x = 10 - k
                        vx = -vx

基本思想是有一个称为“系统”的列表,其元素是称为“粒子”的列表,随着系统随时间的发展,我需要跟踪这些粒子的位置。非常感谢!

*更新

当我运行它时,我得到了particle.x = x * random.uniform(0.1,0.9999),我遇到“AttributeError:'list'对象没有属性'x'”

如何将属性(x、y、vx、vy)分配给每个列表“粒子”,然后将这些列表用作称为“系统”的列表中的元素?

我知道代码“按原样”是可悲的,我想我咬得比我能咀嚼的多一点。谢谢你的耐心。

4

1 回答 1

1

我不想做别人的功课,很难看出你的问题是什么,但似乎是“请解释列表列表”?

characters = []
characters.append (["plumber","wrench"])
characters.append (["wizard","wand"])
> print characters [0]
['plumber', 'wrench']
> print characters [1]
['wizard', 'wand']
> print characters [1][1]
wand
于 2012-05-02T17:37:44.180 回答