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

Use a for loop to create a set of turtles from a list in Python

我正在尝试在 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

当你做的时候

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

您正在该循环内创建一个变量,并为列表内的每个值获取其值。

例如,在第一次迭代中,turtleName 中的值将是 'one',在第二次迭代中它将是 'two'.

当你做的时候

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

希望对您有所帮助:)

您想在

做什么
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)