Turtle Gradient Color(评论代码)
问题描述:
我正在尝试使用Turtle打印30个六角形,这些六角形是螺旋状的,并且颜色从红色变为黑色。Turtle Gradient Color(评论代码)
为了改变(r,b,g)中的设定值,我在乘以for
循环i
,所以在某些时候它会超过r = 255。我包括if
声明拥有它不会超过这一点,但它给我的错误:
File "<ipython-input-4-35d45ac44fdd>", line 20
if r > '255'
^
SyntaxError: invalid syntax
是什么原因造成这个错误?
仅供参考我使用Anaconda和Jupyter笔记本。
这里是我的代码:
import turtle
def draw_hexagon (t, size):
n=6
angle= 360/n
for i in range(n):
t.forward(size)
t.left(angle)
turtle.colormode(255)
mega=turtle.Turtle()
mega.speed(1000)
leng = 100
for i in range(30):
r = 5+(i*10)
g = 0
b = 0
color = (r, b, g)
if r > 255
print color(r,b,g)
mega.fillcolor(color)
mega.begin_fill()
draw_hexagon(mega, leng)
mega.end_fill()
leng = leng + 5
mega.left(5)
turtle.exitonclick()
答
我的建议是不要使用if
语句来绕过错误,而是解决你的数学,以避免它摆在首位。再加上一些代码清理:
from turtle import Turtle, Screen
MIN_COLOR = 5
MAX_COLOR = 255
COUNT = 30
ANGLE = 5
STARTING_LENGTH = 100
LENGTH_INCREMENT = 5
N = 6
def draw_polygon(turtle, size):
angle = 360/N
for _ in range(N):
turtle.forward(size)
turtle.left(angle)
screen = Screen()
screen.colormode(255)
mega = Turtle()
mega.speed('fastest')
length = STARTING_LENGTH
for r in range(COUNT):
red = round(r * ((MAX_COLOR - MIN_COLOR)/(COUNT - 1))) + MIN_COLOR
color = (red, 0, 0)
mega.fillcolor(color)
mega.begin_fill()
draw_polygon(mega, length)
mega.end_fill()
length += LENGTH_INCREMENT
mega.left(ANGLE)
mega.hideturtle()
screen.exitonclick()
你缺少一个':',如果这是Python 3中,你错过了'()'和'print' – mentalita
哦,是的!好点,谢谢!但是,现在我正在运行它,它是这样说的: –
TurtleGraphicsError:错误的颜色序列:(265,0,0) –