라온LC

수업 일지

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수

목 5:30 파이썬12026.10.02

파이썬_ 가을 학기 4주차

이번 시간은 그래픽(3)을 주제로, '함수'에 대해 살펴본 후, turtle 모듈을 사용한 코딩을 진행했습니다.

코딩을 하다 보면 같은 일을 반복해서 작성해야 하는 경우가 종종 있습니다. 이때, 매번 같은 코드를 작성하는 것은 비효율적인 방식으로, 이럴 때 '함수'를 만들어 놓고 필요할 때마다 호출하여 사용하게 되면 프로그램 작성의 효율도 올릴 수 있습니다.

이렇듯, 함수란 자주 쓰는 명령어 묶음에 이름을 붙여, 필요할 때마다 불러서 사용하는 것을 말합니다.

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 1

이는 블록 코딩 시절 '마이 블록'에 해당하는 개념으로, 함수도 마찬가지로 '정의하기' 부분과 '호출하기' 부분으로 나누어져 있습니다.

우선 '정의하기' 부분부터 살펴보겠습니다.

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 2

가장 간단한 형태의 함수 정의 구조입니다. def는 define(정의하다)의 줄임말로, 함수 이름 앞에 붙여야 합니다. def 뒤에는 함수 이름을 작성한 후 괄호( )를 붙입니다. 괄호 뒤에는 콜론을 붙여주면 됩니다.

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 3

위 예시는 두 수의 합을 구하는 add 함수가 정의되고 호출되었습니다. 함수 정의할 때 괄호 안에는 비어있을 수도 있지만, 위 예시와 같이 값을 입력받을 필요가 있는 경우 괄호 안에 변수가 올 수 있습니다. 이러한 변수들은 '매개변수'라고 부르며 위 예시에서는 a, b 2개의 매개변수를 사용한 예시라고 볼 수 있습니다.

add 함수는 두 수를 더한 값인 a+b 값을 return 하고 있습니다. return은 함수 바깥으로 값을 돌려주는 명령어로, 함수 호출 부분의 a+b 값인 30을 반환하게 됩니다. 즉, x의 값은 10과 20의 합인 30으로 정해지게 되어 print(x)는 print(30)이 되어 30을 출력하게 됩니다.

이렇게 함수에 대해 살펴본 후, 이번 시간에는 python에서 그림을 그릴 수 있게 하는 turtle 모듈을 사용해 코딩을 진행해 봤습니다.

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 4

완성된 코드를 살펴보면 onscree nclick 모듈을 사용하여 실행 화면에서 마우스 왼쪽 클릭을 하게 되면 'screenLeftClick' 함수가 실행되고 마우스 가운데 클릭을 하면 'screenMidClick' 함수가 실행되며 마우스 오른쪽 클릭을 하면 'screenRightClick' 함수가 실행됩니다.

각각의 함수는 def 키워드를 사용해서 정의되어 있는 것을 살펴볼 수 있는데, screenLeftClick 함수 정의를 살펴보면, pencolor( ) 함수를 통해 펜의 색상을 결정한 후, pendonw( ) 함수를 통해 펜이 내려가 캔버스에 그림을 그릴 수 있게 해줍니다. 마지막으로 goto(x, y) 함수를 통해 마우스가 클릭된 x, y 좌표로 펜이 움직이게 됩니다.

다음으로 screenRightClick 함수 정의를 살펴보면 penup( ) 함수를 통해 펜을 들어 올려 캔버스에 그림을 그릴 수 없게 한 후 goto(x, y) 함수를 통해 마우스 가운데 버튼이 클릭된 좌표로 펜이 움직입니다.

마지막으로 screenMidClick 함수 정의를 살펴보면 random.random( ) 함수를 통해 펜의 색상을 랜덤하게 바꿔 pencolor( ) 함수를 통해 랜덤 한 색을 적용한 후, penup( ) 함수를 통해 펜을 캔버스에 그리지 못하게 올린 후, stamp( ) 함수를 통해 거북이 모양의 도장을 캔버스에 찍게 해줍니다. 마지막으로 goto(x, y) 함수를 통해 마우스 오른쪽 버튼이 클릭된 x, y 좌표로 움직이게 됩니다. 이렇게 이번 시간에는 함수 정의와 호출 방식에 대해 살펴보고 turtle 모듈을 통해 펜과 도장으로 그림을 그려봤습니다. 다음 시간에는 새로운 주제로 수업을 진행해 보겠습니다.

[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 5[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 6[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 7[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 8[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 9[마곡 코딩] 스파이크 프라임 10월 1일 목요일 5시30분 수업_함수 사진 10

#마곡역코딩학원 #신방화역코딩학원 #유아코딩 #공항초 #공진초 #코드페어 #송화초 #초딩코딩 #AI #대회 #마곡나루맛집 #신방화역학원 #코딩학원 #소프트웨어 #대회준비 #VR #올림피아드 #엔트리 #신방화역맛집 #신방화역카페 #라온lc #laonlc #엔트리 #coding #파이썬 #스크래치