이번 포스팅에선 Python의 함수(Function)에 대해 알아보도록 하겠습니다.
1. 함수(Function)
1-1. 함수의 정의와 특징
- 프로그래밍에서 함수는 어떠한 입력값을 넘겨받은 후 구현부의 처리 로직에 따라 결과값을 반환하게 되는 구조적이고 재사용이 용이한 코드 블록을 의미합니다.
- 입력값, 결과값(반환값)이 항상 존재하진 않으며 선언하는 구조에 따라 특정 기능만 수행할 수도 있습니다.
- 주로 입력값으로 주게 되는 가변 인자(Variable arguments)가 달라지는 상황에서 반복적인 기능을 수행하고자 할 때 함수를 사용하게 됩니다.
1-2. 함수의 정의, 호출(Call)
- 함수를 선언할 때 Python에선 def를 사용해서 정의합니다.
- def 함수명(매개변수):
실행문1
실행문2
return 반환할 데이터
- 함수의 호출(Call) : 위와 같이 함수를 정의하고 코드의 일부에 함수명(매개변수)의 형태로 코드를 작성하게 되면 해당 함수를 호출(Call)한 것이며 함수가 호출됨에 따라 함수가 실행됩니다.
1-3. 여러 가지 함수의 형태
1. 매개변수(Parameter), return이 모두 존재하는 함수
# 함수의 구조1 - 매개변수와 return이 존재하는 함수
def number_sum(a, b):
result = a + b
return result
print(number_sum(10, 20)) # 30
2. 매개변수(Parameter)는 없고 return만 존재하는 함수
# 함수의 구조2 - 매개변수는 없고 return만 존재
def printHello():
return "Hi my name is wonjun"
print(printHello()) # Hi my name is wonjun
3. 매개변수(Parameter)는 있으나 return이 없는 함수
# 함수의 구조 3 - 매개변수는 있으나 return이 없음
def number_sum(a, b):
result = a + b
# return이 존재하지 않으므로 print문으로도 출력되는 값이 없음.
print(number_sum(100, 200)) # None
4. 매개변수(Parameter), return이 모두 존재하지 않는 함수
# 함수의 구조 4 - 매개변수, return 모두 존재하지 않음
def printHello():
print("Hello! my name is python!")
printHello() # Hello! my name is python!
2. 함수의 return
- 함수에서 return문이 존재한다면 해당 함수가 실행되고, 이후에 결과값을 반환한다는 의미입니다.
- 결과값을 반환하는 의미도 가지고 있지만, 상황에 따라 함수를 더 이상 실행하지 않고 함수 블록을 빠져나오겠다는 의미로 사용되기도 합니다.
- 아래 설명들은 함수의 return(반환값)이 가지는 여러 가지 성질들에 대해 예시 코드와 함께 내용을 작성해 보았습니다.
2-1. 결과값을 반환하기 위해 return문을 사용한 경우
- 반환하는 결과값을 확인하기 위해 print문을 사용한 경우입니다.
# 두 정수를 매개변수로 넘겨받은 후 두 수의 곱을 구하는 함수
def number_mul(a, b):
result = a * b
# 곱의 결과를 반환
return result
# 함수가 종료되며 결과값을 반환했기에 print문으로 결과값을 확인
print(number_mul(10, 20)) # 200
- 함수 호출 시, 처리 로직에 따라 결과값을 반환하므로, 결과값을 다른 변수에 저장한 뒤 해당 변수를 직접 print문에 대입하여 결과값을 확인할 수도 있습니다
def number_mul(a, b):
result = a * b
# 곱의 결과를 반환
return result
# 반환되는 결과값을 임의의 변수에 저장
def_result = number_mul(10, 20)
# print문에 변수를 직접 넣어 결과 확인
print(def_result)
2-2. 특정 조건에 따라 함수를 종료시키기 위해 return문을 사용하는 경우
- 아래 코드와 같이 특정 조건에 부합하는 경우 함수의 실행이 종료되도록 return문이 사용된 것을 보실 수 있습니다.
def not_in_a(input_string):
# 인자로 넘겨받은 문자열을 문자 하나 하나 탐색을 시작하며
for search_string in input_string:
# 만약 a 또는 A가 발견된다면 함수 종료
if(search_string == 'a' or search_string == 'A'):
print("입력하신 단어에서 a 또는 A가 탐색되어 함수가 종료됩니다.")
return
else:
print("입력하신 단어 중에서 a나 A는 발견되지 않았습니다.")
not_in_a("apeach") # 입력하신 단어에서 a 또는 A가 탐색되어 함수가 종료됩니다.
not_in_a("mathematics") # 입력하신 단어에서 a 또는 A가 탐색되어 함수가 종료됩니다.
not_in_a("Art") # 입력하신 단어에서 a 또는 A가 탐색되어 함수가 종료됩니다.
not_in_a("neo") # 입력하신 단어 중에서 a나 A는 발견되지 않았습니다.
not_in_a("muzi") # 입력하신 단어 중에서 a나 A는 발견되지 않았습니다.
2-3. return이 여러 개가 존재하는 경우 return은 하나의 튜플에 순서대로 저장되어 반환된다.
# 두 수를 입력받은 후 두 수의 합, 곱을 반환
def sum_multiple(a, b):
return a + b, a * b
print(sum_multiple(20, 30)) # (50, 600)
이번 포스팅에선 Python의 함수, 함수의 return에 대해 살펴보았습니다.
다음 포스팅에선 함수에 대한 여러 가지 주제를 더 다뤄보도록 하겠습니다.
======================================================================
해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.
이에 대해 지적해 주시면 감사하겠습니다.
'백엔드(Back-End) > Python' 카테고리의 다른 글
[Python] - 함수 - *args, **kwargs, 지역변수와 전역변수, Lambda Expression (0) | 2022.08.20 |
---|---|
[Python] - 제어문 - 반복문(while, for문), List comprehension (0) | 2022.08.19 |
[Python] - 제어문 - 조건문(if, elif) 여러 가지 연산자 (0) | 2022.08.17 |
[Python] - 자료형 - 집합(Set), Boolean (0) | 2022.08.15 |
[Python] - 자료형 - 딕셔너리(Dictionary) (0) | 2022.08.15 |
댓글