-1

거북이를 사용하여 나선형으로되어 있고 빨간색에서 검은 색으로 그라디언트 색상이 변하는 30 개의 육각형을 인쇄하려고합니다.거북 그라디언트 색상 (리뷰 코드)

(0120)루프 i에 (r, b, g)의 설정 값을 변경하기 위해 어느 시점에서 r = 255를 초과합니다. 나는이 초과하지 않은하는 if 문을 포함하지만, 그것은 나에게 오류주고 :이 오류의 원인이 무엇

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

를?

참고 : 저는 아나콘다와 주피터 노트북을 사용하고 있습니다.

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

당신에게없는 게'이 파이썬 3의 경우', 그리고, 당신이 놓치고'()''print' – mentalita

+0

와 아, 네! 좋은 지적, 고마워! 그러나, 지금 나는 그것을 실행하고 말하고있다 : –

+0

TurtleGraphicsError : 잘못된 색상 순서 : (265, 0, 0) –

답변

0

내 조언이 오류를 해결하기 위해 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()