-1

J'essaie d'utiliser Tortue pour imprimer 30 hexagones qui tournent en spirale et dont le dégradé de couleur passe du rouge au noir.Turtle Gradient Color (code de révision)

Je suis en train de multiplier ma for boucle i afin de changer les valeurs réglées en (r, b, g) donc à un certain point, elle dépassera r = 255. Je possède une déclaration if de l'avoir ne dépasse pas, mais il me donne l'erreur:

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

Ce qui est à l'origine de cette erreur?

FYI J'utilise Anaconda et un ordinateur portable Jupyter.

Voici mon code:

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

vous manque un ':', et si cela est Python 3, vous manquez '()' 'avec print' – mentalita

+0

Oh oui! Bon point, merci! Cependant, maintenant je l'exécute et il dit: –

+0

TurtleGraphicsError: mauvaise séquence de couleur: (265, 0, 0) –

Répondre

0

Mon conseil est de ne pas utiliser l'instruction if pour contourner l'erreur, mais plutôt corriger vos calculs pour l'éviter en premier lieu. De plus un nettoyage de code:

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