Python 함수

Python / / 2020. 7. 3. 11:06
728x90
반응형

함수(function) :  어떤 일을 수행하는 코드의 덩어리, 또는 코드의 묶음

 

함수의 장점

  1. 필요할 때마다 호출 가능
  2. 논리적인 단위로 분할 가능
  3. 코드의 캡슐화

함수의 선언

def 함수 이름 (매개변수 #1 ...):

  수행문 1

  수행문 2

  return <반환값>

 

*def : 'definition'의 줄임말로, 함수를 정의하여 시작한다는 의미

*매개변수(parameter) : 함수에서 입력값으로 사용하는 변수를 의미하며, 1개 이상의 값을 적을 수 있다.

*수행문 : 수행문은 반드시 들여쓰기한 후 코드를 입력해야 한다. 수행해야 하는 코드는 일반적으로 작성하는 코드와 같다. if나 for 같은 제어문을 사용할 수도 있고, 고급 프로그래밍을 하게 되면 함수 안에 사용하기도 한다.

 

예제

더보기

# 사각형의 넓이 구하는 함수
def calculate_rectangle_area(x,y):
    return x*y


x = 10
y = 20

print("사각형의 x의 길이: ",x)
print("사각형의 y의 길이: ",y)

# 넓인를 구하는 함수 호출
print("사각형의 넓이: ",calculate_rectangle_area(x,y))

출력 결과

 

함수의 실행 순서 확인하기

더보기

# 함수의 실행 순서 알아보기

def f(x):
    return 2*x+7

def g(x):
    return x**2
x = 2

print(f(x)+g(x)+f(g(x))+g(f(x)))
# print( 11, 4, 15, 121) 로 치환되어 결과가 나오는 것을 확인할 수 있다.

출력 결과

함수의 인수

함수의 인수

 

키워드 인수(keyword arguments) : 함수에 입력되는 매개변수의 변수명을 사용하여 함의 인수를 지정하는 방법이다.

 

더보기

 # keyword arguments

def print_name(my_name, your_name):
    print("Hello {0},My name is {1}".format(your_name,my_name))
    
print_name("Lee","Hell")  # 매개변수 순서대로 대입
print_name(your_name="Hell", my_name="Lee") # 매개변수의 이름에 직접 대입

출력 결과 

디폴트 인수(default arguments) : 매개변수에 기본값을 지정하여 사용하고, 아무런 값도 인수로 넘기지 않으면 지정된 기본값을 사용하는 방식

더보기

# default arguments

def print_name(my_name, your_name="Hell"):
    print("Hello {0}, My name is {1}".format(your_name,my_name))

    
print_name("Lee","Hell")
print_name("Lee")

출력 결과

함수의 매개변수가 개수가 정해지지 않고 진행해야 하는 경우가 있다. 이때 사용하는 것이 바로 가변 인수(variable-length arguments)다.

 

가변 인수는 *(asterisk)로 표현할 수 있는데, *는 파이썬에서 기본적으로 곱셈 또는 제곱 연산 외에도 변수를 묶어 주는 가변 인수를 만든다.

더보기

# 가변 인수

def asterisk_test(a,b,*args): # 변수 a,b를 받고 나머지는 * args로 받는다.
    return a + b + sum(args) # args는 가변 인수

print(asterisk_test(1,2,3,4,5)) # 1,2,3,4,5에서 1과 2는 각각 a와 b에 할당되고 
                                # 나머지 인수인 3,4,5가 *args에 할당된다.

키워드 가변 인수

더보기

# 키워드 가변 인수

def kwargs_test(**kwargs):
    print(kwargs)  # **kwargs 에 first = 1, second = 2, third = 3
    print("First value is {first}".format(**kwargs))
    print("Second value is {second}".format(**kwargs))
    print("Third value is {third}".format(**kwargs))

kwargs_test(first = 1, second = 2 , third = 3) # 각각 1,2,3

키워드 가변 인수 출력 결과

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기