러너효방
Python Chapter07 본문
교재 : 멘토씨리즈 파이썬
함수
프로그램밍에서 함수는 반복적인 코드를 작성할 때 이를 짧고 간편하게
사용하기 위해 함수를 만듭니다.
프로그래밍에서의 함수와 수학에서의 함수는 차이가 있습니다.
- 수학에서의 함수 : input과 output이 존재
- f(x) = x + 2;
- 프로그래밍에서 함수 : input과 output이 없을 수도 있다.
- 프로그래밍 언어에서 함수는 두 가지 유형으로 구분 할 수 있습니다.
- 사전에 정의된 함수(이미만들어진 함 사용자 정의 함수
사전에 정의된 함수는 지금까지 사용했던 내장함수가 그 예시입니다.
print(), input(), append(), insert(), type()…
내장함수-146p
배우지 않은 함수들 중에서 유용한 내장 함수가 많이 존재합니다.
- abs(x) : x의 값의 절대값을 반환
- 3 → 3, -3 →3
- round(x) : x의 소수점 다음에서 반올림한 값을 계산
- min(x) : 데이터 집합 x의 최소값을 반환
- max(x) : 데이터 집합 x의 최대값을 반환
- help(function) : 내장 함수 또는 사용자 정의 함수의 기능을 확인
파라미터를 주면 어떻게 컴퓨터가 알아서 순서를 인식해서 넣어주는가?
- print(1,2,3, sep=’/’) 직접 이름을 적어서 전달합니다.
- rount(3.141592,3) 순서를 지켜가며 전달을 받습니다, 파라미터를 받을 순서를 정해놨기 때문에 자리 맞춰서 값이 들어갑니다.
파라미터를 많이 받는 함수의 경우 직접 파라미터에 값을 넣어주는게 실수를 할 확률이 적습니다.
print(1,2,3, sep='/')
![](https://blog.kakaocdn.net/dn/D56wl/btsyPS72bXu/X0aqshuR8rjzfaufYOMGk1/img.png)
![](https://blog.kakaocdn.net/dn/6ZDhr/btsyOE3t0tf/OvnpARQWyIibXYXvqE1glK/img.png)
예제)
![](https://blog.kakaocdn.net/dn/df7jlu/btsyPzt6baI/WHHwH0GDsehqDD90as6P8k/img.png)
![](https://blog.kakaocdn.net/dn/bdwi0e/btsyJQLbRsI/mbC0VlMjFGYPyf1pG0y01k/img.png)
사용자 정의 함수
자신이 컴퓨터로 하여금 수행하게 하고 싶은 반복적인 동작이 있다면 함수를 직접 정의해서 만드는 것을 의미합니다.
함수의 생성 구조
def 함수명(파라미터(들)):
수행할 문장1
수행할 문장2
수행할 문장3
수행할 문장4
return 결과값
함수의 동작 정의
-입력(파라미터) 및 함수 호출 → 함수 내부의 명령 실행 → 결과(return)
함수의 파라미터
-함수의 파라미터가 정해져 있는 경우, 파라미터에 맞게 갓음 전달해야 함수가 동작합니다.
-함수의 파라미터 개수를 맞춰주지 않는 경우 typeError가 발생합니다.
-함수의 파라미터가 적혀있는 순서를 지키는 것도 중요합니다. 이를 지키지 않으면 SemanticError(논리적 오류)가 발생할 수 있습니다.
round(3.14,1) → round(1,3.14) 오류가 난다.
함수명 사용규칙
기존키워드 : if, while, for 사용X
첫글자에 숫자 사용X
기존에 있는 함수명 사용할 수X
기존에 있는 함수 이름을 사용할 경우 기존에 있는 함수를 사용할 수 없게 됩니다.
파라미터나 리턴값이 없는 경우
-파라미터가 없는경우 함수의 input이 없는 경우로 생각을 하시면 됩니다.
-return값이 없는 경우 함수의 output이 없는 경우로 생각을 하면 됩니다.
-return값이 없는 경우 사실 return None이 생략이 되어 있는 것입니다.
![](https://blog.kakaocdn.net/dn/djfizs/btsyLqrTWKY/eKmrfnSlthKKBG3xEa8Fe0/img.png)
![](https://blog.kakaocdn.net/dn/diCOOq/btsyLLbuzx2/Z8zEiVDKOGsFCcqbXktPn0/img.png)
FDR(Function Design Recipe)
함수 내부에 주석을 적어 함수의 파라미터, 리턴타입, 함수 동작에 대한 설명, 풀력 예시 등을
명시하는 것입니다. 이는 help 함수를 통해 확인 할 수 있습니다.
![](https://blog.kakaocdn.net/dn/dKjrcM/btsyLH7VPW6/dNEa0KbDnnbXXKWebaKi71/img.png)
![](https://blog.kakaocdn.net/dn/pEmuX/btsyNsPObUN/jABKy8Xx8auTsKIK0TIGm1/img.png)
주석 처리를 해야 팀 공유할때 편리합니다.
예제) 함수 만들어보기
![](https://blog.kakaocdn.net/dn/dwARKJ/btsyLqemMZn/GVZdGJqRmdz78ggI0u9Dn0/img.png)
![](https://blog.kakaocdn.net/dn/VqT5U/btsyLIZ4W58/47G0wfft0foSqdShA42kjk/img.png)
전역변수 / 지역변수
-함수 바깥에서 사용하는 변수는
전역변수(global variable)이라고 합니다.
-함수 내부에는 사용하는 변수를
지역벽수(local variable)이라고 합니다.
-전역변수의 경우 별도의 처리를 하지 않으면 함수 배부에서 사용할 수 없습니다.
-지역변수 또한 함수의 외부에서 사용할 수 없습니다.
-지역변수는 함수 외부에서 사용할 수 없기 때문에 함수가 return된 순간 다시
전역변수인 2로 바뀝니다.
![](https://blog.kakaocdn.net/dn/b12Ryu/btsyOX24K8g/7oHxbLlwzVQ3rfMgr403tk/img.png)
![](https://blog.kakaocdn.net/dn/bVmBQg/btsyJO7CM0E/aLDAK0oPU2t8OwO1VEViJk/img.png)
global count > 를 사용하지 않을 시
![](https://blog.kakaocdn.net/dn/qH2qS/btsyMBe7Tu4/SxArPYZKIEImgap1fkD0Rk/img.png)
지역변수를 할당받지 않고 전역변수에 대한 값이 나옵니다.
예제)
![](https://blog.kakaocdn.net/dn/bnihBT/btsyLPdQ8Vb/DPKiFG4bjHq6e2ckhhTN61/img.png)
![](https://blog.kakaocdn.net/dn/bl8iRV/btsyMotCyQF/smyfYOHFV3hdzpzn7EHYtK/img.png)
'학습노트' 카테고리의 다른 글
Python Chapter09 (2) | 2023.10.29 |
---|---|
Python Chapter08 (0) | 2023.10.29 |
Python Chapter06 (0) | 2023.10.19 |
Python Chapter05 (0) | 2023.10.19 |
주목받는 업계의, 주목받는 현직자들을 만나는 폴인 오리지널 시리즈 ‘업계사람들’(+유튜브 영상) (2) | 2023.10.19 |