from turtle import Turtle, Screen
import random
turtle = Turtle()
turtle.colormode(255)
def random_color():
r = random.randint(0,255)
g = random.randint(0,255)
b = random.randint(0,255)
random_colour= (r,g,b)
return random_color
direction = [0,90,270,180]
turtle.speed(0)
# Remove the `where` variable since it is not used.
# Add a colon (`:`)` after the `for` loop to indicate the beginning of the loop body.
for _ in range(200):
turtle.color(random_color())
turtle.forward(30)
turtle.setheading(random.choice(direction))
# Move the `screen.exitonclick()` function to the end of the code snippet so that the screen does not close until the user clicks it.
screen = Screen()
screen.exitonclick()
字符串
我试图生成一个随机的颜色与随机游走,但这个错误是未来
2条答案
按热度按时间o0lyfsai1#
我不同意目前“import turtle”两种不同方式的答案。问题是
colormode
是一个 screen(单例)示例方法,而不是一个 turtle 示例方法:字符串
您可以通过导入turtle直接访问初学者友好的全局
colormode
函数(这就是其他答案有效的原因),但是当您通过显式导入Screen
和Turtle
选择对象API时,为什么要这样做呢?有些模式是特定于turtle的,例如
radians
,可以在turtle示例上调用。但其他模式适用于整个turtle环境,例如colormode
,需要在屏幕示例上调用。如果不查看文档,并不总是清楚哪些是哪些。bxpogfeg2#
turtle = Turtle()
创建了一个turtle的示例(单个turtle)。这与turtle模块本身不同,turtle模块本身通常作为import turtle
导入。colormode
是Screen()
单例示例上的函数,它在turtle
模块上别名为顶级函数,而不是在Turtle()
示例上。您可以在
turtle
模块本身或Screen
上访问colormode
。另外,
random_colour
是一个拼写错误。我会避免额外的变量,直接使用return r, g, b
。我还用Black化了您的代码,我建议您的所有代码都使用这种格式,以便其他程序员易于阅读。
字符串
顺便说一下,如果你的编辑器没有自动完成功能,你可以使用
dir()
来确定对象上哪些方法是可用的:型