사각형을 그리는 코드를 따라 쓴 아이에게 range(4)를 왜 쓰는지 물으면, “네 변이라서요”라는 답이 나올 수 있습니다. 그런데 range(5)로 바꾸면 오각형이 될까요? 선을 긋는 횟수와 회전 각도를 따로 살펴보면 예상과 다른 결과가 나옵니다. 이 글은 처음 사각형을 그리는 방법을 설명한 첫 그림 글 다음에, 반복 횟수 하나만 바꾸어 경로를 비교하는 실험입니다.

실행 전에 끝점을 예상해 보세요

거북이는 (0, 0)에서 오른쪽을 보고 시작합니다. 한 번 반복할 때마다 100만큼 앞으로 가고 왼쪽으로 90도 돕니다. 세 번이면 어디에 멈출까요? 네 번이면 출발점으로 돌아올까요? 다섯 번이면 새 변이 생길까요? 종이에 오른쪽·위·왼쪽·아래 화살표를 먼저 그려 본 뒤 코드를 실행해 보세요.

from turtle import Turtle

pen = Turtle()
for i in range(5):
    pen.forward(100)
    pen.left(90)

이 코드는 메타센스 ‘처음 파이썬’의 거북이 이동·for 반복 연습을 한 번에 보여주는 예제입니다. pen = Turtle()로 새 거북이를 만들면 (0, 0)에서 오른쪽을 보고 시작합니다. 위 코드는 5회만 실행합니다. 3회와 4회를 비교할 때는 range(5)의 숫자만 3 또는 4로 바꾸고, 매번 새 그림 창에서 다시 실행하세요. 그림 창을 지원하는 메타센스 코드 스튜디오나 Python turtle 환경에서 실행할 수 있습니다. i는 반복 순서를 받지만 이 예제에서는 따로 사용하지 않습니다.

한 번 실행하며 지나는 위치는 시작 (0, 0) → 1회 (100, 0) → 2회 (100, 100) → 3회 (0, 100) → 4회 (0, 0) → 5회 (100, 0)입니다. 이동한 뒤 매번 왼쪽으로 90도 돌기 때문에, 다섯 번째에는 새 방향으로 가지 않고 첫 번째 선을 다시 지납니다.

세 번·네 번·다섯 번의 실제 경로

같은 이동·회전 규칙을 (0, 0)부터 한 단계씩 따라가며 끝점을 확인했습니다. 아래 3회·4회 결과는 위 코드를 각각 range(3)·range(4)로 바꾸어 별도로 실행했을 때의 결과이고, 제시한 range(5) 코드의 끝점은 (100, 0)입니다. 글 위의 경로 그림은 세 번의 별도 실행을 나란히 놓은 설명도이며 코드 스튜디오 화면 캡처는 아닙니다.

  • 3회: 끝점 (0, 100). 왼쪽 한 변이 비어 있어 닫히지 않습니다.
  • 4회: 끝점 (0, 0). 출발점으로 돌아와 사각형이 닫힙니다.
  • 5회: 끝점 (100, 0). 오른쪽으로 첫 변을 한 번 더 지나갑니다. 오각형이 아닙니다.

다섯 번째에는 네 번 돌고 나서 처음처럼 오른쪽을 바라봅니다. 그래서 새 방향의 변이 아니라 이미 그린 첫 변 위를 지나갑니다. 선이 겹쳐 보여 차이가 잘 안 보이면 마지막 변의 색을 다르게 바꾸거나, 한 단계씩 화살표를 짚어 보세요. 핵심은 “선 다섯 개를 그렸으니 오각형”이라고 셈하는 대신 매번 몇 도를 도는지까지 확인하는 것입니다.

네 번이 되는 이유를 한 문장으로

90도 회전을 네 번 하면 90 × 4 = 360도로 한 바퀴를 돕니다. 같은 길이로 앞으로 이동하는 방향도 오른쪽→위→왼쪽→아래를 거쳐 출발점에 닿습니다. 세 번은 한 방향이 부족하고, 다섯 번은 다음 바퀴의 첫 이동이 시작됩니다. 사각형이 닫히는 이유는 단순히 4라는 숫자 때문이 아니라, 이동 거리와 90도 회전을 한 세트로 네 번 실행했기 때문입니다.

직접 바꾸고 기록할 질문

먼저 다섯 번 실행했을 때의 끝점을 예상해 보세요. 그다음 range(5)를 range(3) 또는 range(4)로 한 숫자만 바꾸어 새 창에서 다시 실행합니다. 각 끝점이 (0, 100), (0, 0), (100, 0) 중 어디인지 확인하고, “5회는 왜 오각형이 아니었나?”를 말이나 글로 남겨 보세요.

이 활동은 정답 그림을 빨리 만드는 것보다 예측→실행→차이 설명을 연습하는 데 목적이 있습니다. 파이썬 과정에서는 이렇게 작은 코드를 직접 바꾸는 경험에서 출발해 게임 프로젝트, 파이썬 심화와 수학 알고리즘으로 이어집니다. 과정과 7일 무료체험 신청은 별도 안내에서 확인할 수 있습니다.