海龟渐变色(查看代码)

Turtle Gradient Color (review code)

我正在尝试使用 Turtle 打印 30 个螺旋形的六边形,并且具有从红色到黑色的渐变颜色。

我正在乘以我的 for 循环 i 以更改 (r, b, g) 中的设定值,因此,在某些时候,它会超过 r=255。我包含了一个 if 声明让它不超过这个,但它给了我错误:

File "<ipython-input-4-35d45ac44fdd>", line 20
    if r > '255'
                ^
SyntaxError: invalid syntax

导致此错误的原因是什么?

仅供参考,我正在使用 Anaconda 和 Jupyter notebook。

这是我的代码:

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()