- 여태껏 우리는 함수를 이용했다 = 함수를 콜(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살로 처리해줬으면 좋겠다.
-> 디폴트 파라미터의 역할
-> 아무것도 없으면, 기본값으로 넣어주고. 파라미터를 입력하면, 해당 파라미터로 반영되게 한다
하지만 문제가 있다.
뒤죽박죽 입력하게 될 가능성도 높아서, 이를 판별하지 못하여 결과값에 혼선이 오는 경우가 있다.
이럴때는 파라미터에 변수명을 확실하게 명시해주면 된다.
또한 명시해주었을 때는, 파라미터의 순서를 바꿔도 된다.
파라미터 이름으로 지정해서 안되는 변수명
- 파이썬에 이미 존재해있는 함수명은 변수명으로 지정해서는 아니된다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 판다스 Pandas 개념: 판다스 시리즈 (0) | 2022.05.01 |
---|---|
[Python] LAMBDA EXPRESSIONS, 람다 함수 (0) | 2022.04.26 |
[Python] LIST COMPREHENSION, 리스트 컴프리핸션 (0) | 2022.04.26 |
[Python] 반복문으로 거꾸로 출력하는 방법: 슬라이싱, reverse(), range 및 for 함수 (0) | 2022.04.26 |
[Python] while 반복문, 무한 루프, 루프안에 루프 (0) | 2022.04.26 |