본문 바로가기
코린이의 코딩배우기

[7] 추상화 - 함수, 파라미터

by 시리얼헌터 2020. 10. 9.
728x90

변수는 값을 저장한다.

함수는 명령을 저장한다

 

파이썬에 기본으로 지정되어있는 함수도 있고,  (내장 함수 :예 print, 등등)

개인이 새롭게 정의 해줄 수도 있다. 

 

함수를 정의할 때 먼저 함수 이름을 정해준 후

그 문단에 함수 기능을 써주는 구조로 작업한다.

 

함수 정의의 첫 줄을 Header라고 부른다.

===>  def (=define:정의하다)를 쓰고 함수 제목을 쓴다. 그 다음 괄호를 열고 닫은 후  ()  콜론 : 을 붙여준다.

 

출처 : 코드잇

 

이 다음 아래 줄에 이 hello라는 함수의 기능을 써야 한다.

tab 버튼을 눌러 들여 쓰기를 해야 이 기능이 hello 함수에 해당하는 것이라는 것을 컴퓨터가 인식한다.

파이참에서는 엔터 누르면 자동으로 들여 쓰기 해준다.

 

강의에서는 hello라는 함수의 기능을 Hello와 Welcome to code it이라는 문장을 두 줄에 걸쳐 출력하는 기능으로 정의해줬다.

출처 : 코드잇

 

이제 hello 함수를 정의 해놨으니 호출해보자!

 

엔터를 누르고 아래 줄에 hello() 라고 쓴다.

이번에는 들여쓰기를 하면 안 된다. 왜냐하면 들여 쓰기 하면 hello함수 정의하는 문단에 계속 속해있는 것이기 때문이다.

 

아래 사진과 같이 hello 함수를 세 번 써주면

Hello

Welcome to code it

세 번 출력된다.

출처 : 코드잇


 

그런데 두둔!!

 

Q. 함수를 호출할 때 마다 조금씩 다르게 동작하게 하는 방법은?

A.파라미터를 사용합니다.

 

파라미터란? 매개변수라고도 하며, 함수를 정의 할 때 쓰는 변수다.

 

일단 결과론적으로 방법은 이렇다.

 

헤더(함수 정의의 첫 줄)에서 괄호 안에 파라미터의 이름을 넣는다. hello(파라미터) 

강의에서는 인사말 사이에 이름을 넣기로 했다. 따라서 파라미터 이름을 Name이라고 지정해 줌

기능 쓰는 부분에서 이름을 넣고 싶은 줄에 print(name)을 쓴다.

그 후 hello함수를 호출할 때 

괄호 안 파라미터에 들어갈 변수의 값을 지정하면 된다.

 

 

 


 

혼자서 여러가지 뻘짓을 해보기로 함

 

1) 괄호 안에 문자열 넣어보기

---->에러로 귀결... 괄호 안을 파라미터 자리고. 파라미터는 문자열 형식으로 지정하는 것이 아닌가 봄

 

 

2) 괄호 안에 숫자열 넣어보기

---->에러로 귀결... 숫자도 안 됨

---->그러나 함수 호출시 파라미터에 데이터 값으로 숫자를 넣는건 됨. 당연한 소리지만..ㅋ

 

 

3) 만약 name을 변수처럼 설정하면?

---->에러로 귀결...

---->오 이렇게 하면 됨!!!!

어쨌든 파라미터도 변수임... 근데 저렇게 변수를 지정해주는게 귀찮으니 함수 방정식 괄호안에 넣어버린 듯 함.

 

4) 만약 변수와 파라미터를 같이 넣는다면? 

---->둘 다 설정 했는데 함수 파라미터에 딱히 데이터 값을 안 넣으면 변수로 출력

---->둘 다 설정 했는데 함수 파라미터에 데이터 값을 넣으면 파라미터로 출력. 변수 지정한 것은 무시 당함

 



한 함수에 여러 개의 파라미터를 넣고 싶을 땐?

괄호 안에 쉼표로 구분하여 두 개의 파라미터를 넣으면 됨..! 아주 간단!!

 

출처 : 코드잇

print_sum 이라는 함수를 정의하고자 함

위의 파라미터 이름 a, b는 본인이 지정하기 나름 / num_1, num_2 이런 식으로 설정해도 됨

함수를 호출 할 때 넣은 숫자 7은 위 파라미터 중 a에, 3은 b에 귀속된다.

 

그래서 출력 값은 10

출처 : 코드잇

더하고자 하는 숫자의 개수를 딱히 지정하기 어렵다 할 때는,

*numbers 라는 파라미터를 써주고

기능 쓸 때 sum(nembers)라는 내장함수를 써주면 된다고 한다.

 

 

만약 곱셈하고자 할 땐?

 

prod라는 내장함수를 불러와야 하는데

요 아이는 import 라는 명령어로 math라는 모듈을 불러 온 후, 그 모듈에 포함된 prod를 써야 하는 갑다.

 

 

728x90
반응형

댓글