관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

함수와 메서드 1 - 함수 및 함수의 종류 본문

프로그래밍 언어/파이썬

함수와 메서드 1 - 함수 및 함수의 종류

huenuri 2024. 8. 1. 11:06

내일 새벽에는 3주 차 수업까지 다 마쳐야 내일까지 진도를 맞출 수가 있다. 그러니까 오늘 2주 차 학습을 다 마치지 못하면 잠을 자지 않겠다는 각오로 공부를 임하려고 한다.

그럼 바로 함수에 대해서 학습해보기로 하자!


 

 

 

 

 

이론 1 - 함수

 

 

 

 

 

 

 

 

 

 

 

 

어떤 입구에 자료를 넣었을 때 작용을 해서 출력을 하도록 만드는 데, 이것이 바로 프로그램의 기본 틀이다. 작용을 할 때 같은 코드를 반복하는 경우가 있다.

 

 

 

 

 

 

이러한 일련의 과정을 함수라고 한다.

 

 

 

 

 

 

컴퓨터가 함수에게 어떤 자료를 건네준다. 그러면 함수는 어떤 일을 해서 그것을 컴퓨터에게 다시 돌려준다.

 

 

 

 

 

 

 

공통점은 자료를 넣으면 뭔가 알려준다는 것이다.


 

 

 

 

퀴즈 1 - 함수

 

 

문제가 아주 쉬웠다.


 

 

 

 

이론 2 - 함수의 종류

 

 

 

 

 

 

 

내장 함수의 예시

 

a를 입력 받아서 a를 출력하라는 뜻이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

내장함수는 편하게 사용할 수 있지만 스스로 만들어야 하는 경우도 있다.

 

 

 

 

 

 

이러한 함수는 존재하지 않기 때문에 직접 만들어야 한다.

 

 

 

 

 

 

def를 써준다는 것은 함수의 틀을 만드는 것과 같다. 매개변수는 함수 안에서 사용되는 변수이다. 매개변수의 특징은 함수 밖에서 자료를 가지고 들어올 수 있다. 입구를 매개변수라고 생각하면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

함수 밖에서는 함수 안에서 무슨 일이 일어나는지 모른다. 따라서 return을 이용해서 값을 바깥으로 내보내주어야 한다. 이때 사용되는 단어가 return이다. 그리고 반환값을 적어주면 이 값이 함수 밖으로 나오게 된다.

 

 

 

 

 

 

 

왼쪽과 오른쪽의 코드는 다를 바 없다. 그 이유는 함수가 7을 반환했기 때문이다. 함수 안에서 무슨 일이 일어나는지 모르지만 7을 출력하라고 하니 출력하는 것이다.


 

 

 

 

퀴즈 2 - 내장 함수

 

 


 

 

 

 

퀴즈 3 - 사용자 지정 함수

 

 

 

 

 

return a는 어디쯤 들어가야 할까? 정렬한 후일 것 같다.


 

 

 

 

실습 1 - 내장함수 사용 : 최대값/ 최소값

 


 

문제 풀기

 

강사님은 튜플을 괄호 안에 넣었는데 난 대괄호에 넣었다. 그래도 답은 맞은 걸 보니 이 방법도 맞는 것 같다.


 

 

 

 

실습 2 - 내장함수 사용 : 합/ 길이

 


 

 

문제 풀기

 

5번째 줄에서 type애러가 발생했다고 한다. 디버깅 입문 수업을 들어서 이제 웬만한 디버그는 알 것 같다. 아마도 변수를 넣지 않아서 생긴 오류 같다. 이렇게 써도 될 줄 알았는데 아닌 모양이다.


 

 

 

다시 풀어보기

 

sum은 자료형이 숫자형이어야 한다. 근데 간단하게 var3 = var1 / var2라고 써도 된다.


 

 

 

 

실습 3 - Return

 

 


 

 

 

함수 만들기

 

함수를 만든 다음 매개변수 3, 4를 받도록 코드를 고쳐주었다. 하지만 아무것도 반환되지 않았다. 뭐가 문제일까?


 

 

다시 풀어보기

 

 

함수를 출력할 때 매개변수를 쓴다고 이전에 만들었던 코드를 지웠더니 이상한 결과가 나왔다. 여기서 출력을 할 때 times_return은 되지 않음을 볼 수 있다. 왜 그럴까?
그 이유는 잘 모르겠는데 print로 묶어주면 제대로 출력이 된다.


 

 

코드 수정하기


 

 

 

 

학습을 마치고

이렇게 함수와 함수의 종류에 대한 학습을 진행하였다. 문제를 풀면서 졸음이 몰려와서 그만하고 싶은 마음과 갈등이 되기도 했다. 그래도 끝까지 학습하며 함수에 대해 어느 정도 이해할 수 있었다.
이론 학습을 할 때 그동안은 알지 못했던 사실을 하나 깨달았다. 함수는 내부가 보이지 않기에 return이 있다는 것이다. 왜 값을 출력하면 되는데 굳이 리턴을 사용하는지 솔직히 이해가 되지 않았다.

 

함수를 만드는 건 처음에는 어려울지 모르지만, 사용자 정의 함수를 만들어 프로그래머가 원하는 정보를 만들 수 있는 최적의 도구이다. 앞으로 함수 만드는 걸 잘 배워서 어떠한 프로그램도 자유롭게 만들고 사용할 수 있었으면 좋겠다~