디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 저번 포스팅에서는 반복문에서 가장 많이 사용되는 for문에 대해서 알아보았습니다. 지금까지의 내용은 개발을 위한 가장 기초적인 초석에 불과합니다. 이번 포스팅에서는 모든 프로그래밍의 꽃 "함수"에 대해서 알아보겠습니다.

 

 

 

 

 

  함수의 기본 개념

 

함수란 무엇일까요? 개발을 할 때에는 가장 효율적으로 코드를 작성해야 합니다. 함수는 공장과 같습니다. 원재료(입력값)이 들어오면 공장(함수)가 가공하여 완제품(반환/결과값)을 내놓습니다. 이는 개발에 있어 가장 기본적인 메커니즘입니다. 사용자가 입력하면 그것을 개발자가 원하는 방향으로 가공한 뒤에 반환값을 내놓습니다. 

 

 

함수의 기본 구조 또한 이 메커니즘에 따라 구성됩니다. 입력 구문, 실행 구문, 반환 구문 3가지로 나뉘죠.

 

 

파이썬 함수의 기본적인 구조는 다음과 같습니다.

 

def 함수 이름(매개 변수)
     실행 구문
     Return 반환값

 

 

Def는 다음 올 구문이 함수라는 뜻을 가지고 있습니다. 매개 변수는 함수 사용을 위해 입력해야할 변수를 뜻합니다. 함수가 실행되면 함수 내에 있는 실행 구문을 수행하는 것이죠. Return 값은 구문 실행 후 값을 반환해주는 역할을 합니다.

 

 

기본적인 예제 코드를 만들어봅시다. 사용자가 x와 y값을 매개변수로 넘겨주면  x와 y를 더한 값을 반환해주는 함수입니다.

 

 

x = 1
y = 2

def num_add(num1,num2):
    return num1+num2
    
print(num_add(x,y)) # 3

 

다음과 같이 num_add 함수를 만들어줍니다. Num_add 함수는 num1, num2 2개의 변수를 매개변수로 받습니다. 이후 return 문을 이용해 두 값을 더해준 결과를 반환합니다.

 

 

함수를 사용할때는 함수 명에 입력 값들을 포함시켜 작성합니다. 결과값이 잘 나온것을 볼 수 있습니다.

 

 

 함수의 형태

 

(1) 일반 함수 형태

 

def num_mul(x,y):
    n = x*y
    return n

 

일반적인 함수 형태는 매개변수와 반환값이 모두 존재합니다. 코드처럼 두개의 값을 입력 받고 실행 구문에서 연산후 연산 결과값을 반환하는 것을 볼 수 있습니다.

 

 

 

 

 

(2) 매개변수(입력값)이 없는 함수 형태

 

def PI():
    return 3.14

 

위의 코드와 같이 매개 변수(입력값)이 없는 함수 형태도 있습니다. 보통 고정된 값을 돌려줘야 할때 사용합니다.

 

 

 

 

(3)반환값이 없는 함수

 

def introduce(name):
    print("Hello! my name is %s"%name)

 

코드와 같이 매개 변수는 존재하지만 return값 즉 반환값이 없는 함수도 있습니다. 보통 print 함수를 호출하거나 내부적으로 연산이 필요한 경우 많이 사용됩니다.

 

 

 

 

(4)매개변수(입력값), 반환값 모두 없는 경우

 

def say():
    print("Helo World")

 

매개변수와 반환값 모두 없는 경우도 있습니다. 

 

 

 

 

 

 함수 활용

 

(1) 여러 개의 입력값을 받는 함수

 

def sum(*nums):
    result = 0
    for n in nums:
        result+=n
    return result

 

입력해야 하는 변수의 개수가 정해지지 않고 여려개의 입력값을 받아야 하는 경우 다음과 같은 함수 형태를 활용합니다. 매개변수 앞에 '*'를 붙입니다. 이는 입력 받은 값들을 모두 모아 튜플을 만들어줍니다.

 

코드와 같이 튜플은 for문 등으로 활용될 수 있습니다.

 

 

 

 

 

(2) 초기값 설정

 

매개변수의 초기값을 지정할 수 있습니다. 초기값이란 사용자가 매개변수값을 입력하지 않았을 때 설정한 값이 자동으로 입력되는 것을 의미합니다. 다음 코드를 작성해보세요!

 

def intro(name="none"):
    print("Hello, my name is %s"%name)

intro('jjh') # Hello, my name is jjh
intro() # Hello, my name is none

 

코드와 같이 입력값을 입력하였을때는 해당 문구가 아무것도 입력하지 않으면 'none'이 출력되는 것을 알 수 있습니다.

 

 

 

 

 


마무리

 

지금까지 가장 기본적인 함수 개념에 대해서 알아보았습니다. 함수는 정말로 중요한 개념입니다. 파이썬뿐만 아니라 모든 프로그래밍 언어가 함수를 중심으로 실행되고 있습니다. 꼭 숙지하시고 넘어가셔야 합니다. 이해가 안된다면 한번더 유심히 읽어 보시고 다음 개념으로 넘어가시는 것을 강력 추천드립니다.

 

포스팅읽어주셔서 감사합니다.

 

 

이전글

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band