신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

 

 

 

 

지난글...

2018/01/05 - [Language/Python] - Python :: 반복문! while에 대해 알아보자 #8

2018/01/05 - [Language/Python] - Python :: 반복문! for문에 대해 알아보자 #9

 

 

 

이번에는 함수에 대해 알아보겠습니다.

 

함수를 나타내는 말로는 function , method 등이 있습니다.

 

파이썬에서 함수를 만들때는 def 라는 키워드를 사용 합니다.

 

(define의 def 를 따온 말입니다.)

 

형태는 아래와 같습니다.

 

 

def 함수명 (인자값)

    수행할 문장...

 



함수는 4가지 형태로 나눠집니다.

 

입력값이 있고, 결과값도 있고...

입력값이 있고, 결과값이 없고...

입력값이 없고, 결과값이 있고...

입력값이 없고, 결과값도 없고..

 

예제를 살펴보겠습니다.

 

 

1. 입력값 o, 결과값 o

 

num1, num2 2개의 값을 입력으로 받아 

 

(num1 + num2) 를 리턴하는 형태의 함수입니다.

 

결과값>>

4

 

 

2. 입력값 o, 결과값 x

# 반환값(결과값)이 없는 함수
def my_sub(num1, num2):
    print(num1-num2)
 
my_sub(3,2)

위와 비슷하지만, 약간의 차이가 있습니다.

 

return 이 없고 함수내에서 바로 (num1 - num2) 값을 출력하는 형태 입니다.

 

결과값>>

1

 

 

3. 입력값 x, 결과값 o

# 인자값이 없는 함수
def my_msg():
    return 'hello python'
 
msg = my_msg()
print(msg)

들어가는 인자값(입력값)이 없고, 결과값만 리턴하는 함수입니다.

 

결과값>>

hello python

 

 

4. 입력값 x, 결과값 x

#  인자값, 결과값 모두 없는 함수
from datetime import datetime
def my_date():
    print('현재시간은', datetime.today(), '입니다')
 
my_date()

 

입력값, 결과값 모두 없는 함수 입니다.

 

from datetime import datetime와 datetime.today() 에 대해서는 추후에 알아보겠습니다. 현재 날짜와 시간을 알려주는 함수 입니다.

그냥 넘어가주시면 될거 같습니다.

 

결과값>>

현재시간은 2018-01-05 19:48:08.698106 입니다

 

 

 

 

입력값을 유동적으로 넣고 싶을때는 어떻게 하는지 알아보겠습니다.

 

형태는 아래와 같습니다.

 

 

def 함수명(*인자값)

    수행할 문장...

 

 

* 를 이용하면 됩니다.

 

예제를 보겠습니다.

#여러개의 입력값이 존재 하는 경우
def my_sum(*nums):
    sum = 0
    for num in nums:
        sum = sum + num
    return sum
 
num1 = my_sum(1,3,6,4)
num2 = my_sum(1,2,3)
print(num1, num2)

위와 같이 하면 nums에 입력한 값들을 tuple 형태로 가져오기 때문에 반복문을 이용하는 등 값을 꺼내오시면 됩니다.

위의경우는 

 

결과값 >>

 

14 6

 

 

마지막으로 결과값을 두개이상을 넣고 싶을때는 어떻게 하는지 알아보겠습니다.

 

그냥 return 에 쉼표를 이용하여 값을 넣어주면 됩니다.

 

하지만, 여기서 알아둬야 할 것이 있습니다. 보기엔 여러개의 값을 반환하는것처럼 보이지만

사실을 튜플(tuple) 형태로 값을 하나 반환 하는것과 같습니다.

 

예제를 살펴보겠습니다.

# 리턴값이 여러개 일때
def my_sum_mul(num1, num2):
    return num1+num2, num1*num2

result = my_sum_mul(2,4)
print(result)
print(type(result))

type() 함수를 이용하여 결과값 자료형 타입을 살펴보면 tuple 이라는 것을 알 수 있습니다.

 

결과값 >>

(6, 8)

 

<class 'tuple'>

 

 

다음글...

 

2018/01/06 - [Language/Python] - Python :: 파일 입출력(file IO), 읽고쓰기에 대해서 알아보자#11

 

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