使用for循环从Python中的列表创建一组海龟

时间:2018-01-31 04:15:12

标签: python list for-loop turtle-graphics

我正在尝试用Python创建一个海龟列表。我可以通过以下方式手动实现:

import turtle
wn = turtle.Screen()

one = turtle.Turtle()
two = turtle.Turtle()

我希望使用以下for循环遍历一个海龟名称列表,但语法却在抛弃我:

import turtle
wn = turtle.Screen()

for turtleName in ["one","two"]:
    turtleName = turtle.Turtle()

one.left(60)
one.forward(160)

NameError: name 'one' is not defined

2 个答案:

答案 0 :(得分:2)

当你这样做时

for turtleName in ["one","two"]:
    turtleName = turtle.Turtle()

你正在这个循环中创建一个变量,并且对于列表中的每个值,它都会得到它的值。

例如,在第一次迭代中,turtleName中的值将为“1”,而在第二次迭代中,它将为“2”。

当你这样做时

turtleName = turtle.Turtle()

您正在覆盖循环给出的turtleName值。

你想要的是动态创建变量,我不知道是否可能,但你可以使用dict做一些你想要的东西,例如,你可以试试

names = ['one', 'two']
turtle_dict = dict()

for name in names:
   turtle_dict[name] = turtle.Turtle()

所以,当你想通过它的名字叫乌龟时,你可以做到

turtle_dict['one'].left(60)

turtle_dict['two'].left(60)

有关dict如何工作的更多信息,您可以查看official documentation

我希望这会有所帮助:)

答案 1 :(得分:1)

你在

尝试做什么
for turtleName in ["one","two"]:
    turtleName = turtle.Turtle()

将变量turtleName赋值为“one”。 就像juanpa.arrivillaga所说的那样,使用字典。

import turtle
wn = turtle.Screen()
dict = {}
for turtleName in ["one","two"]:
    dict[turtleName] = turtle.Turtle()

dict["one"].left(60)
dict["two"].forward(160)