簡體   English   中英

使用for循環和列表的Python索引錯誤

[英]Python Index Error using a for loop and list

我是一個初學者,我想用烏龜編寫一個簡單的游戲。 這個想法是讓一個玩家和多個敵人。 當玩家擊中敵人時,敵人會改變位置(隨機)。 但是,當我創建一個用於制作多個敵對對象的for循環時,出現了以下索引錯誤:

Traceback (most recent call last):
  File "/Users/name/PycharmProjects/untitled1/Testing", line 5, in <module>
    enemys[count].append(turtle.Turtle())
IndexError: list index out of range

我嘗試使用range(0, len(enemys))但隨后並沒有做我想做的,它不會讓敵人因為長度enemys是零。 這是我的代碼:

import turtle    
maxEnemies = 6
enemys= []
for count in range(0, maxEnemies):
    enemys[count].append(turtle.Turtle())
    enemys[count].speed(0)
    enemys[count].shape("circle")
    enemys[count].color("red")
    enemys[count].penup()
    enemys[count].setpos(random.randint(-300, 300), random.randint(-300, 300))

我的期望是它將制作6個物體,全部為紅色,圓形等。

您可以這樣操作,甚至不需要count變量。

import turtle    
maxEnemies = 6
enemys= []
for _ in range(0, maxEnemies):
    enemy = turtle.Turtle()
    enemy.speed(0)
    enemy.shape('circle')
    enemy.color('red')
    enemy.penup()
    enemy.setpos(random.randint(-300, 300), random.randint(-300, 300))
    enemys.append(enemy)

我對turtle不太了解,因此語法可能會略有偏離。

enemys[count].append()會將值附加到列表中,因為您在列表enemys的元素上使用了它,它將嘗試將其追加到enemys內部的列表中,但是它為空,因此會產生錯誤。 這是正確的代碼:

for count in range(0, maxEnemies):
    enemys.append(turtle.Turtle())
    enemys[count].speed(0)
    enemys[count].shape("circle")
    enemys[count].color("red")
    enemys[count].penup()
    enemys[count].setpos(random.randint(-300, 300), random.randint(-300, 300))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM