好的,我有这个代码:
earth = makeWorld()
def turtle():
list = ['Bill', 'Fred']
for name in list:
print name
name = makeTurtle(earth)
我想做的是遍历这个列表,所以我为列表中的每个名字做一个海龟。这显然是错误的,因为乌龟只会继续前进name.forward转发(),并在列表中使用“name”而不是“Bill”或“Fred”。所以它用的是名字而不是名单上的名字。但我不知道该怎么纠正?你知道吗
Tags:
最好的解决方案是使用字典来保存名称对象对:
现在可以使用
turtles
字典访问任何命名对象:您还可以使用“dict comprehension”构造字典,而不是将其创建为空并将海龟添加到显式循环中:
另一方面,使用
list
作为变量名是个坏主意,因为这会隐藏内置列表类型。虽然您通常可以在一个简短的函数中侥幸逃脱,但如果您在模块的顶层执行此操作,则可能会导致非常混乱的错误。你知道吗你可以用一个列表来列出你的新毛衣。你知道吗
这将为每个名称创建一个新的turtle,但看起来您并没有以任何方式使用该名称,因此您可能会重新考虑如何定义makeTutle
除了打印外,您没有使用
name
。然后用makeTurtle(earth)
返回的值替换name
中的值。你知道吗从一些context看起来
makeTurtle()
为您创建了一个海龟对象然后可以使用
turtle
为该名称执行某些操作,但需要在循环体中使用turtle
。你知道吗或者,创建一个字典将名字与海龟联系起来:
现在你有了一个从名字到海龟对象的映射。你知道吗
相关问题 更多 >
编程相关推荐