SiLaure's Data

[Python] 13. Python 기초 문법 - Function 1 (Definition) 본문

Records of/Learning

[Python] 13. Python 기초 문법 - Function 1 (Definition)

data_soin 2021. 7. 22. 14:42

- 함수는...

Iteration Statement를 사용하는 고오급 기법

프로그래밍에 있어 필수적 도구

함수의 기능을 정확히 알고 사용하면 프로그래밍을 고급지고 편하게 할 수 있다.

 

- Function이란?

  • 수학적인 의미의 함수와 개념은 비슷하지만 역할이 다르다.
  • input이 들어와서 정해진 규칙에 따라 처리되어 output이 나온다는 개념은 같지만,
    프로그래밍에서 하나의 함수는 하나의 기능을 나타낸다.
    하나의 기능 : 입력받은 2개의 숫자를 더한다, 들어온 텍스트를 정제한다, 받은 이미지를 greyscale로 변경한다 등등
정확하게는 특정 기능을 구현한 코드 묶음이다.한마디로 하나의 기능을 구현하기 위한 코드들를 함수라고 한다.

 

- 함수를 쓰는 이유?

재 사 용 성 때문이다.
똑같은 구조의 코드는 보통 한 가지의 기능 단위로 묶이게 되는데, 이 기능 단위를 코드로 묶어서 함수로 만든다.
즉, 똑같은 구조의 코드가 반복되는 것을 피하기 위해 함수를 사용한다.

 

- 문법

- def 함수이름(param1, param2, ... ):
        <statement1>
        <statement2>
      return

1. 함수 이름을 정의하고 괄호 안에 input을 받는다.

2. statement 작업

3. return으로 output을 내보낸다.

 

e.g.

def add(a, b):
    # 입력받은 a, b를 더한 값을 돌려주는 함수.
    c = a + b
    return c
    
# 만든 함수 사용하기
add(1, 2)

출력 : 3

 

- parameter --파라미터

  • 함수의 구조는 input ----- (Function) -----> output 의 구조이며,
  • 이 때 어떤 input parmaeter가 들어가서 어떤 output parameter가 나오는지 주목해야 한다.

사칙연산을 모두 함수로 만들어보자.

def sub(a, b) :
    c = a - b
    return c

def mul(a, b) :
    return a * b

def div(a, b) :
    return a / b
    
a = 10
b = 5
print("Sub :", sub(a, b))
print("Mul :", mul(a, b))
print("Div :", div(a, b))

출력 :

Sub : 5

Mul : 50

Div : 2.0

 

b = 0 이라면?
=> 0으로 나눌 수 없으므로 zero division error가 발생한다.

Sub : 10
Mul : 0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-6-eafe58530ae1> in <module>
      3 print("Sub :", sub(a, b))
      4 print("Mul :", mul(a, b))
----> 5 print("Div :", div(a, b))

<ipython-input-4-1c6f18dbdc28> in div(a, b)
      7 
      8 def div(a, b) :
----> 9     return a / b

ZeroDivisionError: division by zero

 

Comments