본문 바로가기

프로그래밍 언어/Python

[Python] 함수, 파라미터(parameter), 리턴(return), 디폴트 파라미터(default Parameter)

반응형

- 여태껏 우리는 함수를 이용했다 = 함수를 콜(call) 했다. = function call

-  따라서, 어딘가에는 함수의 실체 (함수의 정의, definition)가 있다.

함수란?

- 재사용되는 코드 블럭

- Data or arguments가 전달되고, 결과가 return 된다.

- 프로그래밍 하다가, 반복되거나 재사용되는 코드 블럭이 있으면, 이를 함수로 만들면 된다.

- 남들이 이렇게 재사용 잘 되는 함수들을 미리 만들어 놓은것들도 많다. 그것이 라이브러리다.

def fahr_to_kelvin(temp):
    result = (temp-32) * (5/9)+ 273.15
    return result

-> def 이걸 함수의 정의라고 한다. 

-> def 뒤에는 함수의 이름

-> 함수의 이름 뒤에는 괄호안에 있는 변수를 파라미터(parameter= argument)라고 한다. 

-> 파라미터는 함수의 입력하는 부분이 됨. 

-> def 라는 것은 메모리에 올린다는 뜻도 있음.

-> CPU는 return을 만나면, 뒤의 값을 돌려준다/ 함수가 결과값으로 대체된다. 

 

CPU이 메모리에서 읽는 과정 

–메모리–
temp: 50

(함수를 실행하면 함수의 메모리가 따로 생성된다) —fahr_to_kelvin–
temp: 100
result: 310.92777….
(실행이 완료되면 메모리에서 삭제되고, return한 값만 나온다)
(메모리에 저장되는지 여부는, 변수설정을 했냐는 여부)

-> return 이 있으면 해당 호출 함수를 return 뒤의 값으로 대체 및 해당 함수 메모리는 삭제된다. 

 

- 함수를 만들 때는, 내가 예상되는 결과를 미리 만들어놓고, 만드는게 좋다.

ex)

return이 없는 경우

ㄴ 메모리에 없다.

ㄴ 출력은 화면이 찍히고, 리턴은 화면에 찍히지 않는다. 

( data2에는 아무것도 들어있지 않다)

 

Parameter가 하나인 경우

ex)

Q) 어떤 숫자 1개를 함수의 파라미터로 입력받으면, 그 숫자를 제곱해서 리턴하는 함수

 

Parameter가 두개인 경우

ex)

Q) 어떤 숫자를 넣고, 그리고 그 숫자를 몇번 제곱할지를 넣으면, 해당 숫자를 몇 제곱하여 리턴하는 함수

Return 값이 둘 이상인 경우

ex) 

Q) 숫자를 두개 입력 받으면, 그 숫자들로 나눈 몫과 나머지를 리턴하는 함수

- return 값에 콤마를 넣어주면 자동으로 튜플로 처리된다. 

- 리스트로 만들겠다 하면, 리스트로 리턴! 

 

Default Parameter 디폴트 파라미터

ex) 

Q) 나이를 받으면 나이가 몇인지 화면에 출력하는 함수

-  아무 데이터도 안념겨주면, 그냥 33살로 처리해줬으면 좋겠다. 

 -> 디폴트 파라미터의 역할

 -> 아무것도 없으면, 기본값으로 넣어주고. 파라미터를 입력하면, 해당 파라미터로 반영되게 한다

 

하지만 문제가 있다.

뒤죽박죽 입력하게 될 가능성도 높아서, 이를 판별하지 못하여 결과값에 혼선이 오는 경우가 있다. 

이럴때는 파라미터에 변수명을 확실하게 명시해주면 된다. 

또한 명시해주었을 때는, 파라미터의 순서를 바꿔도 된다. 

 

파라미터 이름으로 지정해서 안되는 변수명

- 파이썬에 이미 존재해있는 함수명은 변수명으로 지정해서는 아니된다.


반응형