2014-10-05 44 views
-1

我在不同位置創建了一個蟒蛇蜜蜂,蜜蜂和樹木的程序,我希望蜜蜂能夠移動。但是,當我運行我的程序時,它總是因爲類型錯誤而卡住。請有人請向我解釋是什麼導致問題以及如何解決問題。另外,我是一個完全初學者編程,所以如何使我的代碼更快或更合理的任何提示都會很樂意接受。該程序的代碼如下:需要幫助替換列表中的項目

import random 


wb0,wb1,wb2,wb3,wb4,wb5,wb6,wb7,wb8,wb9 = [],[],[],[],[],[],[],[],[],[] 

worker_bees = [wb0,wb1,wb2,wb3,wb4,wb5,wb6,wb7,wb8,wb9] 


f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14 = [],[],[],[],[],[],[],[],[],[],[],[],[],[],[] 

flowers = [f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14] 


t0,t1,t2,t3,t4 = [],[],[],[],[] 

trees = [t0,t1,t2,t3,t4] 


def world_generate(): 


    def worker_bee_spawn(): 

     x = 0 
     i = 0 

     while i < 10: 

      worker_bees[x] = (random.randrange(0,100), random.randrange(0,100)) 

      x += 1 
      i += 1 


    def flower_spawn(): 

     x = 0 
     i = 0 

     while i < 15: 

      flowers[x] = (random.randrange(0,100), random.randrange(0,100)) 

      x += 1 
      i += 1 

      if flowers[x - 1] == worker_bees: 
       x -= 1 
       i -= 1 


    def tree_spawn(): 

     x = 0 
     i = 0 

     while i < 5: 

      trees[x] = (random.randrange(0,100), random.randrange(0,100)) 

      x += 1 
      i += 1 

      if trees[x - 1] == worker_bees: 
       x -= 1 
       i -= 1 

      elif trees[x - 1] == flowers: 
       x -= 1 
       i -= 1 


    worker_bee_spawn() 

    flower_spawn() 

    tree_spawn() 


world_generate() 


def worker_bee_movement(): 

     x = 0 
     i = 0 

     while i < 10: 

      worker_bee = worker_bees[x] 

      worker_bee_x = worker_bee[0] 

      worker_bee_x += 1 

      worker_bee[0] = worker_bee_x 

      worker_bees_x = worker_bee 


      x += 1 
      i += 1 



worker_bee_movement() 
+0

的名單能否請您發表與線標記的(全)錯誤? – 2014-10-05 20:07:59

+0

對於所有事情的熱愛,請用嵌套列表替換增量命名的變量。 – jonrsharpe 2014-10-05 20:23:11

回答

1

更改以下行:

while i < 10: 
     worker_bee = list(worker_bees[x]) 

worker_bees[x]是一個元組,所以​​3210然後進行worker_bee一個元組,你的worker_bee[0] = worker_bee_x將失敗:

'tuple' object does not support item assignment 

要說清楚,(1,2,3)[0] = 3是不允許的,允許[1,2,3][0] = 3

並使用range建立名單

worker_bees = [[] for _ in range(10)] 


flowers = [[] for _ in range(15)] 


trees = [[] for _ in range(4)] 
+0

Padraic,非常感謝!但是,我有一個問題,在列出我的列表時,三個括號相鄰的目的是什麼?不應該只有兩個?還有什麼在支架內?非常感謝! – c2000e 2014-10-07 01:19:03

+0

'[[] for _ in range(4)]'make - >'[[]。[],[],[]]' – 2014-10-07 08:18:10

+0

謝謝!現在它變得更有意義!我沒有注意到該行末尾有第四個括號。 – c2000e 2014-10-08 02:16:33