Python

[파이썬] 함수의 정의 - 1

소혜아빠 2021. 1. 20. 17:33

함수는 한마디로 '코드의 집합'으로 볼 수 있습니다.

예를 들어, 숫자 a와 b를 더하는 프로그램을 만든다고 했을 때 아래와 같이 코드를 구성하게 됩니다.

a = 5
b = 7
sum = 0

sum = a + b

print(sum)

여기서 한 개의 프로그램에 a와 b를 더하는 기능을 여러번 반복하게 되었을 때 두 수의 합을 구하는 코드를 아래와 같이 반복해서 복사/붙여넣기 하게 될 것입니다.  

# 5 + 7을 출력
a = 5
b = 7
sum = 0
sum = a + b
print(sum)

# 3 + 5를 출력
a = 3
b = 5
sum = 0
sum = a + b
print(sum)

...
..
.

이는 설명을 위해 간단한 코드로 나타내었지만, 더 어렵고 복잡한 기능을 수행하는 코드를 여러번 복사/붙여넣기하게 되면 코드를 관리하기 어려워집니다. 그래서 이러한 중복코드를 방지하고 수정사항이 생겼을 경우 복잡하게 코드를 수정하지 않고 간단히 수정함으로써 효율적으로 코드를 관리하기 위해 함수를 사용합니다.

 

매개변수가 없는 기본 함수의 구조는 아래와 같습니다.

def 함수이름():
    코드
    . . .

함수 선언 시 주의할 점으로는 함수 이름을 적고나서 :를 끝에 적어야하는 것과 함수의 내용(코드)를 적을 때에는 반드시 들여쓰기를 해야한다는 점입니다.

 

위에서 설명드린  두 수를 더해주는 함수를 만든다면 아래와 같이 만들 수 있는데요. 아직 매개변수 및 리턴(return)에 대해서 설명드리지 못해서 참고만 해주시면 될 것 같습니다.  

# 함수 선언
def cal_sum(a, b):
    return (a+b)
   
# 함수 호출
print(cal_sum(3,5))
print(cal_sum(5,7))

기본적인 함수에 대한 예시로 "안녕하세요"를 3회 출력하는 함수를 만들어보겠습니다.

# 함수 선언
def print_n_times():
    print("안녕하세요")
    print("안녕하세요")
    print("안녕하세요")
    
# 함수 호출
print_n_times()

위와 같이 print_n_times 함수를 호출하게 되면 내부 함수에 있는 "안녕하세요" 출력 동작을 3회 수행하게 됩니다.

만약 print_n_times 함수가 없이 "안녕하세요" 9번 출력하려고 한다면 print("안녕하세요")를 9번 복사/붙여넣기 했어야겟지요. 

 

같은 기능을 하는 프로그램을 구현하기 위해서는 함수를 통해 코드를 집합시키고 함수 호출을 통해 코드를 구성하면 훨씬 간단하면서 관리하기 편한 프로그램을 만들 수 있습니다.

 

다음으로는, 함수 매개변수 활용에 대해 포스팅하겠습니다.

 

감사합니다.