错误的颜色序列在 python turtle 中意味着什么?

新手上路,请多包涵

我在一个项目中使用 python turtle,我需要 turtle 来绘制字符。但是,当我尝试使用颜色的 RGB 值时,我不断收到错误消息。输入是:

 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)

这是什么意思,我该如何解决?

原文由 derpyherp 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

文档

r、g 和 b 中的每一个都必须在 0..colormode 范围内,其中 colormode 为 1.0 或 255(请参阅 colormode() )。

您的颜色模式可能设置为 1.0,因此各个颜色坐标需要在 0 到 1 范围内浮动,或者您需要将颜色模式设置为 255。

原文由 Petr Viktorin 发布,翻译遵循 CC BY-SA 3.0 许可协议

一个非常简短和简化的答案是,这意味着传递给 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()

原文由 victorkolis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题