본문 바로가기
자기개발

Python (파이썬) 독학하기 _ #5. 함수(Function)

by benjamin-L 2022. 9. 5.
728x90
반응형

오늘은 파이썬에서 함수에 대해서 알아보도록 하겠습니다. 개인적으로는 다른 프로그램 언어에서의 함수와 문법은 다르지만 대동소이 한것 같은 느낌이 들었습니다.

함수의 개념

함수 (Function)

1) 함수란 어떤 업무나 계산을 수행하는 실행문들에 묶어 이름 붙인 것이다.

   -  만들어진 함수는 동일한 작업이 필요 할때 마다 재사용될 수 있다.

   -  함수를 만드는 것을 함수 정의라고 한다.

   -  정의된 함수를 사용하는 것을 함수 호출이라고 한다.

2) 함수 사용의 장점

   -  코드의 용도를 구분할 수 있다.

   -  코드를 재사용할 수 있다.

   -  실수를 줄일 수 있다.

3) 함수의 호출  -  함수는 함수명으로 호출한다.

   -  함수명 ( [인수1, 인수2, .... ] )

   -  함수는 수행하면 함수의 수행결과를 반환(Return)한다. 함수의 return 값은 없을 수도 있다.

 

함수 (Function) 의 정의

1) 함수의 선언부와 구현부로 나누어 진다.

   -  함수의 선언 부(Header) :  함수의 이름과 인수를 받을 변수를 지정한다.

   -  함수의 구현 부(Body) :  함수가 호출 되었을 때 실행할 실행문들을 지정한다.

 

ex)   def 함수이름 ( [인자, 인자, ... ] ) :      # 선언부 (Header)

        ----실행구문 1                                    # 구현부 (Body)

        ----실행구문 2

        ----[ return [결과값] ]

 

2) 매개변수(인자, Parameter) 는 인수를 받기 위한 변수로 0개 이상 선언할 수 있다.

3) 함수의 실행구문은 반드시 띄어쓰기 4칸 또는 Tab 이후에 작성한다.

4) 결과값이 있을 경우 return 구문을 넣고 없을 경우 return 은 생략할 수 있다.

   -  return 값이 없는 함수는 None을 반환 한다.

 

함수의 매개변수(인자, Parameter)

1) 매개변수는 선언부에 선언하는 변수로 호출할때 전달된 인수를 저장하는 변수이다.

   -  매개변수는 0~N 개 선언이 가능하다.

   -  2개 이상 선언시 , (코마)를 구분자로 사용한다.

   -  매개변수는 로컬 변수로 함수 내에서만 사용할 수 있다.

 

ex)  def test_sum (num1, num2) :     # 함수 정의 :  num1, num2 매개변수를 받는다.

       ----result = num1 + num2          # 받은 매개 변수를 합한다.

       ----return result                          # 함수는 매개 변수를 합한 결과를 되돌려준다.

 

       num = test_sum (10, 20)           # 앞서 정의된 함수 test_sum 를 불러와서 num1 = 10, num2 = 20 정의한다.

       print (num)                                 # 함수에서 return 되는 반환값(10 + 20)을 프린트 한다.

 

2) 가변인자 :  인수의 개수를 정하지 않고 받을 경우 사용한다.

   -  매개변수 앞에  * 를 붙인다.

       :  가변인자는 튜플로 처리된다.

   -  매개변수 앞에  ** 를 붙인다.

       :  가변인자는 딕셔너리로 처리된다.

   -  키 = 값 형식으로 인수를 전달해야 한다.

   -  가변인자는 하나만 선언가능 하며 마지막 변수로 선언되어야 한다.

   -  * 와  ** 가변인자는 하나씩 같이 선언할 수 있다.

 

ex)  def test_print ( *num ) :

       ----for i in num :

       --------print(i)

 

내장 함수 (Built - in Function)

1) 내장 함수란 :  특정 모듈을 import 하지 않고 사용할 수 있는 함수들이다.

2) 내장 함수 중에서 다음 주요 함수들이 있다.

  -  타입변환 함수

    . type(object)    =>  object 의 타입 조회

    . int(x)               =>  숫자 또는 문자열 x 를 정수로 변환

    . float(x)            =>  숫자 또는 문자열 x 를 실수로 변환

    . bool(x)            =>  x를 논리값 True, False 로 변환해 반환

    . str(x)               =>  x를 문자열로 변환

  -  iterable 객체 관련 함수

    . list(iterable)     =>  iterable 를 리스트로 반환

    . tuple(iterable)  =>  iterable 를 튜플로 반환

    . set(iterable)     =>  iterable 를 set으로 반환

    . dict(**kwarg)    =>  반복 가능한 객체로 딕셔너리를 생성하여 반환

    . list(), tuple(), set() 에 dictionary를 전달하면 key 값만 각각의 자료 구조에 넣어 반환

    . len(s)                =>  자료구조객체들, 문자열등의 항목 수를 조회해 반환

    . min(iterable), max(iterable) :

                               =>  iterable 원소중 최소값/최대값을 반환

    . all(iterable)       =>  iterable 의 모든값이 True 이거나 비어 있으면 True 반환

    . any(iterable)     =>  iterable 의 값들중에 하나라도 True 면 True 반환. 비어 있으면 False 반환

    . filter(함수, iterable)  =>  iterable의 각 원소를 함수의 매개변수로 전달하여 True인 것만 걸러낸다.

    . sorted(iterable, reverse = False)  =>  iterable의 요소들을 오름차순 정렬한 리스트(list)를 반환

 

람다(lambda) 함수

1) 람다 함수란?

   -  런타임에 생성해서 사용할 수 있는 익명(anonymous) 함수로 함수 이름이 없다.

   -  람다 함수의 본문은 한개의 표현식(expression)만 가질 수 있다.

   -  함수의 입력 변수의 이름 또한 필요 없다.

   -  번거롭게 일반 함수를 정의할 필요가 없는 간단한 기능만을 구현해도 되는 경우 사용된다.

   -  return 문도 없으며 단지 인자들과 반환값들의 관계식으로만 표현된다.

2) 람다 함수의 정의

     lambda  인자1, 인자2, ......  :     # 표현방법

 

ex) 두수의 합을 반환하는 람다 함수는 아래와 같다.

     add = lambda a, b :  a + b         # 람다 함수 정의

     def add(a, b) :

     ----return a + b

 

3) 람다 함수는 이러한 간단하고 일회성 용도로 사용되는 함수를 쓸때 def 키워드를 이용한 함수를 만들지 않고 보다 간결한 코드를 작성하는 데 큰 도움을 준다.

728x90
반응형

댓글