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