러너효방

Python Chapter07 본문

학습노트

Python Chapter07

방효방 2023. 10. 19. 15:33

교재 : 멘토씨리즈 파이썬

함수

프로그램밍에서 함수는 반복적인 코드를 작성할 때 이를 짧고 간편하게
사용하기 위해 함수를 만듭니다.
프로그래밍에서의 함수와 수학에서의 함수는 차이가 있습니다.

  • 수학에서의 함수 : 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) : 내장 함수 또는 사용자 정의 함수의 기능을 확인

파라미터를 주면 어떻게 컴퓨터가 알아서 순서를 인식해서 넣어주는가?

  1. print(1,2,3, sep=’/’) 직접 이름을 적어서 전달합니다.
  2. rount(3.141592,3) 순서를 지켜가며 전달을 받습니다, 파라미터를 받을 순서를 정해놨기 때문에 자리 맞춰서 값이 들어갑니다.

파라미터를 많이 받는 함수의 경우 직접 파라미터에 값을 넣어주는게 실수를 할 확률이 적습니다.
print(1,2,3, sep='/')

 
예제)

 


사용자 정의 함수

자신이 컴퓨터로 하여금 수행하게 하고 싶은 반복적인 동작이 있다면 함수를 직접 정의해서 만드는 것을 의미합니다.
함수의 생성 구조
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이 생략이 되어 있는 것입니다.


FDR(Function Design Recipe)
함수 내부에 주석을 적어 함수의 파라미터, 리턴타입, 함수 동작에 대한 설명, 풀력 예시 등을
명시하는 것입니다. 이는 help 함수를 통해 확인 할 수 있습니다.

주석 처리를 해야 팀 공유할때 편리합니다.
예제) 함수 만들어보기


전역변수 / 지역변수

-함수 바깥에서 사용하는 변수는
전역변수(global variable)이라고 합니다.
-함수 내부에는 사용하는 변수를
지역벽수(local variable)이라고 합니다.
-전역변수의 경우 별도의 처리를 하지 않으면 함수 배부에서 사용할 수 없습니다.
-지역변수 또한 함수의 외부에서 사용할 수 없습니다.
-지역변수는 함수 외부에서 사용할 수 없기 때문에 함수가 return된 순간 다시
전역변수인 2로 바뀝니다.

global count > 를 사용하지 않을 시

지역변수를 할당받지 않고 전역변수에 대한 값이 나옵니다.
예제)