본문 바로가기
Programming/Python

[ L2P ] Python 입문 - Turtle 모듈 - 001

by The Programmer 2024. 9. 15.

1. Introduction

 

Python 입문 - Turtle 모듈 - 001, 첫 번째 시간입니다. 이하 Python 입문 과정 내용들은 선수과목으로 LOGO 기본 과정을  충실하게 학습했다고 가정하고 있습니다. LOGO 내용은 본 블로그 LOGO 관련 게시글들을 참고하세요.

 

이런 저런 설명보다는 작동되는 코드를 중심으로 Python의 특징들을 단계적으로 학습해보겠습니다. 아래 코드를 살펴보면서 LOGO 환경과 어떻게 다른지 주목해보세요.

 

 주의  : Python에서는 LOGO 환경과는 달리 영어 대소문자 구분을 엄격하게 시행합니다. 따라서 대소문자들을 올바른 코드와 다르게 쓰면 여러 오류가 발생합니다.

 

 

2. Code

 

더보기

import turtle

# 거북이 모듈을 불러옵니다. 모듈이란 '미리 만들어져서 Python에 내장되어 있는 작은 프로그램' 정도입니다.


turtle.setup(1600, 768, 50, 50)
# 거북이 윈도우의 크기와, 위치를 결정합니다. width, height, x, y.

 

turtle.mode("logo")
# "standard" 모드가 기본입니다.

j = turtle.Turtle()
# 거북이 모듈(turtle)에서 거북이 객체를 만들어 주는 메소드 함수(Turtle())를 사용해서
# 거북이 객체 하나를 생성하고 이 거북이 이름을 j로 합니다.
# 위 문장은 다음과 같이 사용해도 결과는 같다.
#  j = turtle.Pen()

j.shape("turtle")
j.shapesize(3)
j.reset()
j.st()

def box1():
    for i in range(4):
        j.fd(100)
        j.rt(90)

def move1():
    j.pu()
    j.rt(90)
    j.fd(120)
    j.lt(90)
    j.pd()

def setup():
    j.pu()
    j.lt(90)
    j.fd(750)   
# turtle.setup() 함수에서의 x축의 길이를 고려하는 것이 좋다.
    j.rt(90)
    j.pd()

def draw():
    for i in range(12):
        box1()
        move1()

def main():
    setup()
    draw()
    turtle.done()

main()



 

3. Result

Thonny v.4.1.4 x32에서 실행한 결과 화면입니다.

 

 

4. Notes

 

실행 후 거북이를 그대로 남겨두기로 했습니다. 코드 마지막에 있는 turtle.done()은 일종의 사용자의 닫기 명령을 대기하는 역할을 수행합니다. 사용자가 거북이 창을 종료해야 대기 상태에 있던 거북이 창이 닫기며 프로그램의 실행이 완료됩니다.

 

 

■ Python의 들여쓰기 문제  

 

Python에서 들여쓰기는 Space키를 쳐서 들여쓰거나, 아니면 탭Tab 키를 쳐서 들여쓰기를 할 수 있습니다. 일관성있게 사용해야 합니다.

 

Python의 들여쓰기는 반드시 제대로 지켜야 합니다. 들여쓰기를 Space키를 쳐서 할 경우, 4타 정도의 들여쓰기가 좋습니다. 들여쓰기가 타수가 서로 달라 세로로 줄이 맞지 않고 삐뚤삐뚤하게 되면 오류가 생깁니다. 100% 들여쓰기 타수가 일치해야 합니다.

 

이런 문제 때문에 들여쓰기를 Space 키 대신에 Tab 키를 쳐서 들여쓰는 경우도 많습니다.

 

 

 

 

■ Python 반복문의 생김새

 

for i in range(4):

        <반복할 내용1은 여기에>    # 들여쓰기 반드시 제대로 지켜야 합니다.

        <반복할 내용2는 여기에>    # 들여쓰기 줄을 딱딱 매우 정확하게, 100% 정확하게 맞추어야 합니다.

 

 

■ 최대 속도로 그리기 ★

더보기

[ 그리기 속도 개선 예제 ]

 

import turtle

turtle.mode("logo")
turtle.setup(1920, 460)    # 각자의 모니터 크기에 맞게 조정해야 합니다.
turtle.delay(0)    # 그리기 지연 속도를 '없음zero'로 설정해서 최대 속도로 그리는데 도움을 줍니다.

# 아래 펜 객체 'PenObject.speed(0)' 과 함께 사용되어 최대 속도로 그립니다.

j = turtle.Turtle()
j.speed(0)    # 그리기 속도 자체를 최대치로 높입니다. 가장 빠름. 'turtle.delay(0)'와 협력해서 최도 속도로 그립니다.

def box1():
    for i in range(4):
        j.fd(100)
        j.rt(90)

def move1():
    j.pu()
    j.rt(90)
    j.fd(120)
    j.lt(90)
    j.pd()

def box12():
    for i in range(12):
        box1()
        move1()

def main():
    setup()
    box12()
    j.ht()
    turtle.done()    # 그리기가 끝나자마자 그대로 창이 닫기는 것을 막고 대기하는 역할을 합니다. 결과 확인용.

def setup():
    j.pu()
    j.rt(90)
    j.back(880)    # 자신의 컴퓨터 모니터의 크기에 맞게 조정해야 합니다.
    j.lt(90)
    j.pd()

main()

 

5. Files

 

Intro_001_Turtle_001_.py
0.00MB

 

 

 

6. Ref.

1) Python 내장 도움말.

2) Thonny IDE 내장 도움말.

 

 

Happy Programming!

^.^;

 

 

 

'Programming > Python' 카테고리의 다른 글

UniCode 연습 - 001  (0) 2024.10.09
[ 고급 ] 파일명 관리 유틸리티 SR. (v.0.0.2 beta 001)  (0) 2024.10.06
Free IDE - Thonny  (0) 2024.09.08
turtle.pencolor() 함수  (0) 2023.12.10
[ L2P ] 재귀 : 다른 방식의 루프  (0) 2023.09.24