2012-05-02 2 views
-1

Я новичок в python и программировании в целом, я работаю над своим окончательным проектом по вычислительной физике, и у меня возникают проблемы с созданием структуры, которая позволит мне создавать n-частицы, каждая из которых имеет атрибуты x, y, vx, & vy. Все это создает идеальное газовое моделирование, которое в конечном итоге будет подключено к модели звездного слияния. Любая помощь будет принята с благодарностью. Вот что я до сих пор.Python списки списков

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 = х * random.uniform (0,1, 0,9999) , где я сталкиваюсь «AttributeError: 'список' объект не имеет атрибута 'x' '

Как назначить атрибуты (x, y, vx, vy) каждому элементу списка «частицы», а затем использовать эти списки как элементы в списке «система»?

Я знаю, что код грустный «как есть», я думаю, что я откусил немного больше, чем могу пожевать. Спасибо за ваше терпение.

+3

Итак, у вас есть вопрос? Кроме того, правильно отформатируйте свой код. – Marcin

+2

В этом коде есть много значительных ошибок. Он не будет работать. Возможно, вы можете попробовать и устранить неисправности. Если вы не можете понять, какие проблемы, вернитесь и попросите нас о какой-то конкретной помощи. – japreiss

+2

Это потому, что вы создаете список, а затем пытаетесь использовать его как структуру (которая не существует в Python - помимо использования только одного класса для имитации) - вы можете посмотреть ['collections.namedtuple'] (http://docs.python.org/library/collections.html#collections.namedtuple). –

ответ

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 
+0

Большое спасибо, я действительно не прошу кого-то сделать для меня работу, мне трудно задавать правильные вопросы. Я ценю помощь. –

Смежные вопросы