我正在使用python turtle进行一个项目,我需要乌龟来绘制字符。但是,当我尝试使用rgb值foe颜色时,我不断收到错误消息。输入是
turtle.color((151,2,1))
接下来是一系列动作,但是当我运行程序时,我收到此消息
File "C:/Users/Larry/Desktop/tests.py", line 5, in center
turtle.color((151,2,1))
File "<string>", line 1, in color
File "C:\Python33\lib\turtle.py", line 2208, in color
pcolor = self._colorstr(pcolor)
File "C:\Python33\lib\turtle.py", line 2688, in _colorstr
return self.screen._colorstr(args)
File "C:\Python33\lib\turtle.py", line 1158, in _colorstr
raise TurtleGraphicsError("bad color sequence: %s" % str(color))
turtle.TurtleGraphicsError: bad color sequence: (151, 2, 1)
这是什么意思,我该如何解决?
答案 0 :(得分:8)
来自docs:
r,g和b中的每一个必须在0..colormode范围内,其中colormode为1.0或255(参见colormode())。
您的颜色模式可能设置为1.0,因此单个颜色坐标需要在0到1范围内浮动,或者您需要将颜色模式设置为255.
答案 1 :(得分:2)
一个非常简短和简化的答案是,这意味着传递给 pencolor() 方法的值之前没有通过 Screen 对象方法 colormode() 设置。
必须创建一个屏幕对象。然后,必须设置颜色模式。因此,使乌龟笔可以接受包含 0 - 255 范围内的数字的元组类对象。(255, 0, 20)
例如。为什么?因为设置颜色模式的方法不止一种。
例如
from turtle import Turtle
from turtle import Screen
# Creating a turtle object
bert = Turtle()
# Creating the screen object
screen = Screen()
# Setting the screen color-mode
screen.colormode(255)
# Changing the color of the pen the turtle carries
bert.pencolor(255, 0, 0)
# 'Screen object loop to prevent the window from closing without command'
screen.exitonclick()