Step by Security Study

[기초] 함수 Definition 본문

프로그래밍/Python

[기초] 함수 Definition

jooon99 2023. 3. 5. 04:47

함수 개념

함수는 프로그램에서 특정 작업을 반복하여 수행해야 할 때 해당 작업을 수행하는 함수를 한 번만 작성하여, 반복적인 코드의 작성을 최소화하고 코드의 재사용성을 높여준다. 즉, 반복적으로 사용되는 코드를 모아서 이름을 붙인 것을 말한다. 함수는 만들어 놓기만 하면 되는 게 아니라 프로그램 내에서 해당 작업을 수행할 때 호출해 줘야 실행이 된다.

# 함수의 기본 구조
def 함수명(매개변수)      
    실행할 명령

 

매개변수 Parmeter와 인수 Argument

매개변수는 함수 호출 시 입력된 값을 전달 받은 변수를 의미한다. 인수는 함수를 호출할 때 함수에 전달되는 입력값을 의미한다.

def add(a, b):    # a, b는 매개변수
    return a+b

print(add(3,4))   # 3, 4는 인수

 

 

함수 종류

내장 함수 : 파이썬에서 미리 만들어 제공해 주는 함수를 말한다.

모듈의 함수 : 비슷한 함수끼리 묶어둔 것을 말한다.

사용자 정의 함수 : 자신만의 함수를 직접 만들어서 사용하는 함수를 말한다.

 

 

함수 형태

1. reture (반환) : 가장 일반적인 형태

함수에 값을 넣어 계산된 값을 돌려주기 위해 사용하는 함수이다. 개발자의 의도에 따라 있을 수도 없을 수도 있다.

# 2개의 숫자를 입력받아 그 값을 저장해서 돌려주는 함수

def add(num1, num2):     
    return num1 + num2  

print(add(2, 3))         

>>>
5        # num1과 num2를 더한 값을 return 하여 돌려주기 때문에 5가 출력됨

 

# 여러 개의 값을 돌려주는 함수

def add_mul(num1, num2):
    return num1 + num2, num1 * num2   # 여러 개의 값은 콤마로 구분, 돌려줄 때도 마찬가지로 콤마로 구분

print(add_mul(2, 3))
>>>
(5, 6)                                # 튜플로 돌려준다.

=> 이 결과를 통해 함수의 결괏값은 언제나 하나인 것을 알 수 있다.

 

 

2. reture 함수가 없는 경우

함수의 결괏값은 오직 retrun 명령어로만 돌려받을 수 있다. 하지만 함수 내에 return 함수가 정의되지 않은 경우 결괏값으로 None이 반환된다. 아래 예시를 통해 알아보자.

def add(a, b):
    print("%d, %d의 합은 %d입니다." % (a, b, a + b))

c = add(3, 4)        
print(c)
>>>>>>
3, 4의 합은 7입니다.  # 이와 같이 출려된 문장은 함수에 의한 결괏값이 아니라 단순히 함수 내의 print 출력값이다. (print ( ) 괄호안에 있는 문장을 출력한 것이다.)
None                 # 변수 c는 retrun으로 돌려받은 값이 없기 때문에 None이 반환된 것이다.

 

 

3. 입력 값이 없는 경우

매개변수 부분이 비어 있는 형태로, 입력 값은 없지만 결괏값을 돌려준다.

결괏값을 받을 변수 = 함수 이름( )
def say():
    return "HI BYE"

a = say()            # a에 HI BYE를 return 해줌
pirnt(a)

>>>
HI BYE

 

 

4. Default 매개 변수

매개변수에 초기값을 지정하는 형태를 말한다. 일반적으로 함수는 정의한 매개변수만큼의 인수가 들어오지 않을 경우 인수에 대한 에러가 발생한다. 하지만 매개변수에 초깃값을 지정해두면 초깃값으로 대신할 수 있다.

def add(x=0, y=0)
    return x+y
result = add(3)
print(result)


def add(a=3, b=7):
    return a+b

result = add()

print(result)

 

주의사항

인수 값은 앞에서부터 채워지기 때문에 초깃값이 존재한다고 해서 인수를 건너뛰고 전달하는 것은 불가능하다. 함수 호출 시 인수 값을 순서대로 변수에 저장하기 때문에 매개변수는 맨 마지막부터 차례로 설정해야 한다. 그렇지 않으면 에러가 발생한다.

def func( a= 10, b, c):
    return a + b + c

func(1, 2)  # 1이 a이고 2는 b에 들어간다. c는 초깃값도 없는 데  인수가 들어오지 않으니 에러가 발생한다..

func( , 1, 2) # 인수 값은 건너뛰고 전달 불가

 

 

 

 

'프로그래밍 > Python' 카테고리의 다른 글

[기초] 모듈 Module  (0) 2023.03.05
[기초] 파일 읽고 쓰기  (0) 2023.03.05
[기초] for문 (반복문)  (0) 2023.03.05
[기초] while문 (반복문)  (0) 2023.03.05
[기초] if문 (조건문)  (0) 2023.03.05