본문 바로가기
유익한 강의

파이썬 Python Start! 네 번째 걸음, 미니 그림판으로 창의력 발휘하기!

by 무드니 2024. 10. 30.
반응형

안녕하세요!
누구에게 닿을지 모르겠지만, 반갑습니다.
 오늘은 드디어 네 번째 파이썬 수업에 
관한 내용을 포스팅하려고 해요! 
이번 수업에서는 미니 그림판 만들기를 배워보았습니다.

수업을 진행하면서, 문득
 “어? 이 기능도 가능한가?”, “이건 추가해볼까?” 
하는 생각이 자주 들더라고요. 
파이썬으로 그림판을 구현하면서 
제가 몰랐던 기능들까지 하나하나
 살펴보는 즐거움이 있었습니다.

그럼 이제 아래에서 자세한 내용을 다뤄볼게요. 
함께 파이썬의 창의적인 재미를 찾아가 봅시다!

 



수업을 시작하기 전, 차분해지는 음악과

 함께 고래 사진을 보았습니다.

 은근히 마음이 편안해지더군요. 

그런데 사진을 자세히 들여다보니 고래 뒤쪽에 무언가 보이는 듯한데…

 잡아먹힌 걸까요? 

뒤쪽이 흐릿해서 잘 보이지는 않네요.

 

본격적인 파이썬 수업에 들어가기에 앞서, 

선생님께서 인터럽트에 대한 설명을 해주셨습니다.

내부 인터럽트와 외부 인터럽트의 개념을 명확히 잡아 주셨는데, 

이게 단순한 기술적인 지식을 넘어 일상 속에서도

 유용하게 활용될 수 있는 상식처럼 느껴졌어요.

 덕분에 아주 멋지게 개념을 정리할 수 있었고, 

어디 가서 배운 티를 조금 내볼 수 있을 것 같네요. 

선생님, 감사합니다!

 

인터럽트, 쉽게 설명하면?
파이썬 수업에서 인터럽트에 대해 배우게 됐는데요, 

이게 생각보다 재미있더라고요! 

인터럽트는 프로그램이 쭉 실행되다가

 어떤 상황이나 이벤트가 발생하면 잠깐 멈추고 

다른 작업을 처리할 수 있도록 하는 개념이에요. 

크게 내부 인터럽트와 외부 인터럽트로 나눌 수 있답니다.

 

내부 인터럽트

내부 인터럽트는 컴퓨터 내부에서 일어나는 일이에요.

시스템 인터럽트라든지,

프로그램들끼리 서로 이야기하는 상황에 쓰이죠.

예를 들어, CPU가 뭔가 중요한 작업을 하다가도

메모리를 관리하거나 다른 프로그램과 소통할

때 잠깐 멈췄다가 다시 시작하는 것처럼요.

쉽게 말해, 컴퓨터 안에서 알아서 일어나는

일들 사이의 흐름을 조절하는 기능이랍니다.

외부 인터럽트

외부 인터럽트는 우리가 컴퓨터에 명령을 줄 때 발생해요.

마우스 클릭, 키보드 입력, 터치패드 터치 같은

모든 입력이 외부 인터럽트예요.

트랙볼, 마이크, 카메라까지도 여기에 포함됩니다.

그러니까 우리가 하는 모든 조작이

컴퓨터에게 ‘나 여기 있어!’ 하고 알려주는 거죠.

 

 

파이썬의 강력한 효율성!
파이썬의 가장 큰 장점 중 하나가 바로 효율성이죠! 

다른 프로그래밍 언어들보다 코드가 짧고 간결하니까, 

초보자나 일반인들이 배우기 좋아요. 

게다가 파이썬은 규칙이 덜 엄격해서 

아주 말랑말랑(?)하다고 할 수 있는데, 

이걸 좀 좋게 표현하면 “유연하다”는 거죠. 

덕분에 코드를 쓸 때 부담 없이 원하는 대로 쉽게 작성할 수 있어요. 

이런 유연함 덕에 파이썬이 많은 

사람들에게 사랑받는 이유겠죠?

 

터틀 그래픽으로 시작하는 미니 그림판
파이썬 터틀 그래픽의 한계가 있다면

 창을 고정하는 기능이 없다는 건데요. 

물론, 더 복잡하고 고급 기능을 원한다면 다른 언어도 써볼 수 있어요. 

그렇지만 기본적인 그래픽 작업이나 간단한 

그림판 만들기 같은 데는 파이썬이 딱이랍니다!

 코드도 간단하고 쉽게 짤 수 있으니까요.


이렇게 파이썬으로 인터럽트 개념도 배우고, 

터틀 그래픽도 다뤄보니, 

앞으로 할 수 있는 게 더 많아질 것 같아 벌써부터 기대돼요!

 

수업에서 배운 내용 공유해 드리도록 할게요^^

여러분들도 저와 함께 공부해 보아요

 

# 파이썬 미니 그림판

import turtle as t

def clearAll(x,y):
    t.clear()

def Red():
    t.color("red")

def Black():
    t.color("black")

def S3():
    t.pensize(3)

def drawShell(x,y):
    t.up()
    t.goto(x,y)
    t.down()
    for k in range(130):
        t.circle(k)
        t.left(2)
    
t.setup(800,480)
t.title("미니 그림판 v.1")
t.bgcolor("white")
t.hideturtle()
t.color("black")
t.pensize(1)
t.speed(0)

t.onscreenclick(t.goto)
#t.onscreenclick(clearAll,3)
t.onscreenclick(drawShell,2)

t.onkeypress(t.penup,"Up")
t.onkeypress(t.pendown,"Down")
t.onkeypress(t.clear,"Escape")
t.onkeypress(Red,"r")
t.onkeypress(Black,"q")
t.onkeyrelease(S3,"3")

t.listen()
t.mainloop()

반응형