본문 바로가기
Software/Python

[파이썬의 기본] 함수(Function)

by lovey25 2019. 2. 28.
반응형

함수

함수는 어떤 기능을 하도록 구현한 코드들의 묶음으로 필요에 따라 함수이름만 가지고 호출해서 사용할 수 있습니다. 그래서 이 함수를 만들어서 코드를 잘 정리하면 가독성도 좋아지고 유지보수에도 도움이 됩니다. 

파이썬의 함수도 다른 언어들과 마찬가지로 함수의 선언과 호출로 사용하고 파라미터와 반환값을 주고받습니다.

 

함수의 선언

함수를 만드는 방법입니다.

“def”라는 키워드를 사용합니다. 그뒤어 사용할 함수의 이름, 괄호, 콜론(:)을 차례로 적어어서 함수의 언선이 시작되는 부분임을 표시합니다.

함수는 코드의 덩어리가 묶여있는 형태이기 때문에 함수의 단락이 이어지고 있음을 표시해야 겠죠. 

C언어에서는 중괄호( {, } )를 이용해서 함수단락의 시작과 끝을 표시하는데 반해, 파이썬은 단순히 들여쓰기로만 표시합니다. 

예제:

def my_func():  #함수 시작
  print("spam")
  print("spam")
  print("spam")  #여기까지가 함수

my_func()

위 예제에 있는 my_func라는 이름의 함수는 파라미터와 반환이 없는 함수로 “spam”이라는 문자를 3번 출력하는 기능만 가지고 있습니다. 들여쓰기가 되어있는 3줄의 “print”가 함수덩어리임을 말해주고 있습니다.

그리고 마지막 줄에서 함수이름()로 선언된 함수를 호출하고 있습니다. 실행결과는 다음과 같겠죠.

결과:

 

매개변수

매개변수를 사용하는 함수의 예제입니다.

예제:

def print_again(word):
  print(word * 2)

print_again("spam")
print_again("eggs")
print_again("python")

결과:

 

반환

함수내부에서 만들어진 결과는 나중에 사용해야할 일이 많이 있죠 이때 return이라는 키워드를 사용해서 함수내부의 값을 밖으로 반환시켜줄 수 있습니다.

C언어에서는 함수 선언시에 반환값의 형태를 미리 지정해 주어야 하는데 파이썬은 그런 딱딱한 절차없이 반환하고자 하는 값이 생기면 그냥 함수 내부 어느위치에서든지 return이라고만 해주면 됩니다.

예제:

def max(x, y):
    if x >=y:
        return x
    else:
        return y

print(max(4, 7))
z = max(8, 5)
print(z)

결과:

 

함수의 변신(?)

함수는 def라는 키워드를 사용해서 조금은 딱딱하게 정형화된 선언을 통해 만들어지는걸 확인했습니다. 그럼에도 불구하고 파이썬에서는 함수를 여느 변수처럼 가볍게 취급할 수 있습니다.

무슨말이냐면 변수선언하든 함수를 변수에 할당하게되면 그 변수가 함수대신 사용될 수 있습니다. 

예제:

def sum(x, y):
  return x + y

x = 9
y = 8
plus = sum
print(plus(x, y))

결과:

 

끝!

반응형

댓글