Function

seyong·2021년 11월 14일
0
post-thumbnail

Function(함수) 은 무엇일까?

  • function 는 일정한 작업을 수행하는 코드블럭이다.
  • 개념적으로 봤을때 함수는 수학의 함수와 동일하다.
  • input이 있고 output이 있는 아주 간단한 구조이다.

함수를 사용하는 이유는?

  • 반복되어 계속 사용되는 코드들을 함수로 정의하여 효과적으로 사용하기위해서.

  • 함수로 정리하여서 코드의 가독성을 높이기 위해.

  • 다시 사용할수 있고, 유지보수를 편리하게 하기위해.


파이썬에서 함수는 def 키워드를 사용하여 정의되며 아래와 같은 문법을 가진다.

def 함수명(parameter):
    문장1
    문장2
    ...
    문장N
    [return 리턴값]

함수 정의하기

  • 파이썬에서 함수는 def 키워드를 사용하여 정의한다.
def say_hello():
	print("Hello, world!")

위에 코드를 보면 'say_hello' 라는 이름을 가진 함수가
"Hello, world!" 라는 문자열을 출력하는 단순한 기능을 갖고있다.
함수가 수행할 코드의 블럭은 한 칸 들여쓰기(4칸)로 구분되어야 한다.

함수 호출하기

  • 정의된 함수를 사용하기 위해서는 아래와 같이 함수의 이름과 괄호()를 이용하여 호출한다.
def say_hello():
	print("Hello, world!")

# 함수 호출하기
say_Hello() # Hello,world!

매개변수(parameter) 와 인자(argument)

  • 매개변수는 함수에 입력으로 전달된 값을 받는 변수를 의미한다.
  • 매개변수는 다양한 방식으로 입력받아 함수에서 사용할수있다.
  • 인자는 인수라고도 불리며 함수를 호출할때 전달하는 입력값을 의미한다.
  • (문서와 코드에서는 관례적으로 argument를 arg로 줄여서 사용한다.)

하나의 매개변수를 가질 때

def say_hellow(text):
	print(text)
    
say_hellow('Hellow!')	# Hellow!

여기서 함수를 정의할때 사용한 text 를 매개변수 또는 parameter라고 하고,
함수를 호출할때 입력한 문자열 Hellow 를 함수의 인자 또는 argument 라고 한다.

두개의 매개변수를 가질 때

def add_num(a, b):
	print(a + b)
    
add_num(2, 5)	# 7

위에 함수는 입력받은 두 숫자의 합 (a + b)를 출력한다.

  • 함수를 정의할 때는 매개변수(parameter)를 몇 개든지 사용할 수 있지만, 그 만큼함수를 호출할 때 정의한 매개변수와 같은 개수의 인자(argument)들을 전달해야한다.

  • 함수 정의 매개변수(parameter)갯수 = 함수 호출 (argument)갯수

매개변수(parameter)의 기본값(defalut)

def add_result(a, b = 10):
	print(a + b)

add_result(7)	# 17

최초 함수를 정의할 때 b = 10 과 같이 지정해주면,
2번째 매개변수 b의 기본값이 10으로 설정되어있기때문에

a = 7, b = 10 ---> a(7) + b(10) = 17 이 되는것이고,
함수를 호출때 역시 b 가 10으로 기본값이 설정되어있기에
1개의 argument(7) 만 입력하여 호출해도 된다.

매개변수(parameter)의 기본값(defalut)의 다른 유형

def add_result(a, b, c = 10):
	print(a + b + c)

add_result(5, 7, 20)	# 32

매개변수(parameter)의 기본값이 최초 함수정의시 지정되어있더라도,
호출할 때 3번째 인자(argument)로 20을 입력하면 새로운 값이 저장된다.

임의 개수의 매개변수(parameter)

def add_all(*args):
	print(args)
    
    a = 0	# 최초 a를 0으로 초기화 
    for x in args:
    	a = a + x
        
        
    print(a)
    
add_all(1, 2, 3)	# (1, 2, 3)		6

add_all(1, 2, 3, 4, 5, 6, 7)	# (1, 2, 3, 4, 5, 6, 7)		# 28

함수를 정의하는 시점에 입력할 매개변수의 개수가 정해지지 않았을 대는 *args와 같이 표시해주면, 입력 인자(argument)들을 튜플(tuple)의 형태로 만들어준다.

*args를 출력하면 (1, 2, 3) 또는 (1, 2, 3, 4, 5, 6, 7)와 같이 출력된다.

함수의 반환값 'return' 사용

파이썬 키워드 return 을 이용하여 함수의 반환값을 얻을 수 있다.

def add_num(a, b):
	result = a + b
    return result
    
print(add_num(10, 5))	# 15
  • add 함수는 매개변수 a와 b를 합한 결과를 반환(return)한다.
    아래처럼 좀 더 간단하게 작성할 수도 있다.
def add_num(a, b):
    return a + b
    
print(add_num(10, 5))	# 15

함수를 정의할 때, 매개변수(parameter)와 반환값(return)은 없어도 된다.

또한 입력 parameter 만 있고 return이 없어도 되고,

입력 parameter 가 없고 return만 있어도 된다.

아래 예시를 보자.

def say_hellow():
	print('Hello, world!')

def add_two_num(a, b):
	print(a + b)

def return_true()
	return True

def return_add_two_num(a, b):
	return a + b
    
    
say_hello()   # Hello, world!	
add_two_num(10, 5)   # 15				
print(return_true())   # True
print(return_add_two_num(10, 5))   # 15

. Reference
https://wikidocs.net/24
https://suwoni-codelab.com/python%20%EA%B8%B0%EB%B3%B8/2018/03/04/Python-Basic-function/

profile
# 불편함을 편리함으로 바꾸고싶은 주니어 Back-end 개발자

0개의 댓글