관리 메뉴

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

함수와 메서드 3 - Method(메서드) 본문

프로그래밍 언어/파이썬

함수와 메서드 3 - Method(메서드)

huenuri 2024. 8. 1. 11:12

어제 함수와 메서드 단원을 다 마치고 취침하려고 했으나 너무 졸려서 11시 정도에 잠자리에 들었다. 그리고 오늘은 5시간 정도 자고 3시 50분에 일어나 새벽 공부를 시작해 본다.

앞으로는 이 정도쯤은 잠을 청하고 나머지 시간을 알차게 보내기로 했다. 오늘 새벽에 할 게 정말 많다. 4시간 20분쯤 공부할 시간이 있으니 1시간 40분은 함수와 메서드에 나머지 시간은 2주 차 단원 학습에 투자해 보기로 계획을 세워본다.

이렇게 오늘 해야 할 분량을 미리 머릿속으로 그려놔야 최소한의 목표를 이루게 되는 것 같다. 그럼 바로 메서드 학습을 시작해 보자. 이제 잠도 어느 정도 깼으니 공부를 시작해도 될 것 같다.



 

 

이론 4 - 메서드

 

특정 기능이란 함수의 기능이다. 예시를 보면 my_list의 추가하고, 수를 세고 삭제하라는 등 특정 자료에 대해 기능을 하고 있다.


 

 

 

 

 

함수는 특정 기능을 하며 괄호를 사용해 my_list를 명시적으로 전달해 준다.

 
 
 
 
 
 

메서드는 점을 사용해 기능을 하는데 괄호 안에는 아무것도 쓰지 않는다. 이 특정 자료가 무엇인지는 객체 단원에서 더 자세하게 다루게 될 것이다.


 

 

 

퀴즈 4 - Method(메서드)

 

 

 

 

 

그동안 함수와 메서드가 서로 같은 뜻인 줄 알았는데 분명한 차이가 있다는 걸 알게 되었다. 이 둘을 잘 구별하도록 하자.



 

 

 

실습 5 - 메서드

 

 

 

혼자서 실습 문제를 풀어보았다. 요즘에는 실습 문제에 코드에 어떻게 하라는 예시도 없이 아무것도 주어지지 않을 때가 많다.


 

 

혼자 직접 풀어보기

 

 

 

정답을 잘 맞혔지만 영상을 보면서 더 학습할 부분을 배워보기로 했다.


 

 

또 다른 답안

강사님은 나와는 좀 다른 방법으로 푸셔서 코드를 한번 적어보기로 했다. 난 Dictionary라는 변수를 하나 만들었고 그것을 다시 my_dict에 넣어주었다. 하지만 바로 my_dict을 사용할 수도 있었다.
그리고 print를 각각 하나씩 쓰면 한 문장씩 끊을 수 있다.



 

 

 

실습 6 - 인자와 매개변수

 

 



 

혼자서 풀어보기

 

 

 

매개변수는 함수를 넘겨받을 때 값을 관리하는 값을 의미한다. 매개변수에 맞춰 값을 전달하는 것을 인자라고 한다. 이 두 개념이 비슷해서 헷갈릴 수도 있다.
3과 4는 함수를 호출할 때 사용하는 자료이다. 이때 사용하는 것이 인자이다. 이렇게 사용된 인자는 매개변수에 담긴다.

영상과 거의 유사하게 문제를 풀어서 이번에는 따로 코드를 작성할 필요가 없었다.


 


 

실습 7 - 최대값 직접 구하기

 



 

혼자서 풀어보기

 

 

 

인자가 하나만 필요한 것 같다. 다시 한번 풀어보기로 했다.



 

다시 풀어보기

 

 

이상한 문자가 나왔는데 이 문제는 혼자 해결하기 힘든 것 같다.



 

설명 들어보며 다시 풀기

매개변수에 이름을 하나 만들어서 넣어준다. 최대값을 구하는 것은 여러 가지 방법이 있는데 그중에서 가장 낮은 값 하나를 저장하고, 리스트 안에 저장된 변수보다 크면 비교된 큰 값으로 바꾸어본다.
가장 작은 값을 적어주는데 -1이라고 해도 된다. 그런 다음 리스트에 있는 자료를 하나하나 꺼내서 maxNum과 비교하는 코드를 만든다.

 
 
이 문제는 너무 어려워서 정답을 여러번 확인하면서 풀었다. 한 4번 이상..

처음 값을 -1이라고 했으니 어떤 값을 비교하든 number가 더 크게 되어 있다. 그 값은 maxNum이 되는데, 또 다른 number와 계속해서 비교하면서 가장 큰 수까지 가는 것이다. 이제 이해가 되었다. 전에 알고리즘에서 비슷한 문제를 풀었는데 도무지 무슨 말인지 이해할 수 없었다.
값을 하나하나 넣어주면서 어떻게 결과가 나오는지 확인해 보니 이제 알 것 같다. 그리고 최대값인 maxNum을 반환하는데 함수 안에 있어야 한다. 함수 밖에 있으면 이렇게 오류가 뜬다.

 


 

 

 

이제 최댓값이 제대로 나왔다.



 

 

학습을 마치고

마지막에 푼 실습 문제는 정말 어려웠지만 이제 드디어 최대값을 어떻게 구하는지 감이 잡혔다. 다음에는 혼자서 생각해서 풀 수 있도록 해볼 것이다. 이번 수업에서 배운 것들이 참 많다. 메서드와 함수의 차이점도 알게 되었고, 인자와 매개변수도 서로 다르다는 것도 배울 수 있었다. 전에는 모두 같은 말인 줄 알았다.

함수도 혼자서 만들어볼 수 있는 실력 정도는 되는 것 같다. 다음 포스트에서는 함수 단원을 정리해 보는 시간을 갖기로 했다. 이제 이 단원의 끝도 얼마 남지 않았다.
어젯밤에는 정말 몽롱한 상태여서 도저히 이해하기 어려웠으나 오늘 새벽에 맑은 정신으로 공부하니 정말 좋다~