[英]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.