Re: [問題] 請問如何產生N個名稱
謝謝Neisseria大介紹globals函數讓我解決了幫球自動取名的問題
但又碰上新的問題,
我希望在每一個迴圈中,自動把每個球的位置塞入新的list中,
好讓我可以每個迴圈重新計算球與球間的距離。
若不用迴圈我會這樣寫:
b_new_pos_list = []
b_new_pos_list.append(ball_0.pos)
b_new_pos_list.append(ball_1.pos)
b_new_pos_list.append(ball_2.pos)
b_new_pos_list.append(ball_3.pos)
相同的,我想利用for loop自動把每個球的位置放入b_new_pos_list中
因此我嘗試這樣寫。
b_new_pos_list=[]
for N in range(0,4,1):
b_new_pos_list.append(ball_N.pos)
但當然還是不行,因為系統沒辦法自動判斷出ball_N.pos指的就是
ball_0~3.pos
再次感謝。
--
PS:有板友再問我為何要做這些事情,是因為我想用python寫高中物理的模擬
想讓每個球能獨立運動,且討論球間的受力關係(所以需要每次迴圈確定球間距離)
而球的數量要超過100顆,才需要用迴圈寫,謝謝。
※ 引述《lefan (紅氣球雯雯)》之銘言:
: 小弟第一次在python問問題,由於不是學程式的,問題問的不好請見諒
: balllist = []
: position = [1.0, 0.75, 0.5, 0.25]
: for po in position:
: balllist.append(sphere(pos=vector(-L*cos(th)*po, L*sin(th)*po, 0.6-po),
: radius = size, color=color.red))
: ball_0=balllist[0]
: ball_0.v = vector(0.0, 0.0, 0.0)
: ball_1=balllist[1]
: ball_1.v = vector(0.0, 0.0, 0.0)
: ball_2=balllist[2]
: ball_2.v = vector(0.0, 0.0, 0.0)
: ball_3=balllist[3]
: ball_3.v = vector(0.0, 0.0, 0.0)
: 以上是我在balllist中放入四個球體的位置尺寸顏色,
: 再把他們分別放入ball_0,ball_1,ball_2,ball_3
: 我想利用for loop 自動產生N個名稱如上述寫法
: for N in range(0,4,1):
: ball_N=balllist[N]
: ball_N.v = vector(0.0, 0.0, 0.0)
: 但當然不行,因為沒辦法讓程式自動判定ball_N是ball_0 ~ ball_3
: 希望有強大的板友幫忙,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.242.172
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1453385944.A.F39.html
※ 編輯: lefan (1.161.242.172), 01/21/2016 22:22:53
推
01/21 22:49, , 1F
01/21 22:49, 1F
推
01/21 22:58, , 2F
01/21 22:58, 2F
→
01/21 23:00, , 3F
01/21 23:00, 3F
→
01/21 23:01, , 4F
01/21 23:01, 4F
→
01/21 23:01, , 5F
01/21 23:01, 5F
→
01/21 23:06, , 6F
01/21 23:06, 6F
→
01/21 23:30, , 7F
01/21 23:30, 7F
→
01/21 23:30, , 8F
01/21 23:30, 8F
→
01/22 00:21, , 9F
01/22 00:21, 9F
→
01/24 20:26, , 10F
01/24 20:26, 10F
討論串 (同標題文章)