본문 바로가기

python 기초강의

파이썬 함수 생성 방법 기본 문법 독학 #13

파이썬 함수 생성 방법 기본 문법 독학 #13

파이썬 함수 생성 방법 기본 문법 독학 #13

 

안녕하세요.

오늘은 파이썬의 함수를 생성하고 사용하는 방법에 대한 기본 문법을 함께 공부해 보도록 하겠습니다.

함수란 무었일까요?? 그럼 혹시 매개변수, 파라미터, 반환값, 리턴값에 대해서 들어보신적이 있으신가요?

 

수학에서도 함수를 공부해 보셨겠죠.

어떤 값을 가지고 특정한 규칙 또는 수식을 거쳐 다른값으로 변환하는것 이죠.

 

프로그래밍에서 말하는 함수도 비슷한 개념 입니다.

 

아마 SQL이라던지 java같은 다른 언어를 공부해 보셨다면 함수의 개념을 알고 계실 겁니다.

그래도 이번에 프로그래밍 언어를 파이썬을 통해 처음 접하신다면 잘 모르시겠죠.

 

함수란?

여태까지 파이썬 12강을 하면서 여러분들은 자신도 모르게 함수를 쓰고 있었습니다.

가장 기본적인 print도 입력받은 값을 돌려주는 함수인거죠.

파이썬 함수

위 그림과 같이 어떤값이 들어가서 미리 정의한 규칙을 통해서 그 결과를 받아내는게 함수 입니다.

 

이때 입력되는 값을 매개변수 또는 파라미터라고 칭하고, 출력되는 값을 반환값, 또는 리턴값이라고 합니다.

이 함수를 잘 사용하면 파이썬 코딩을 한결 더 간결해지고, 쉬워집니다.

 

그럼 함수에 대해서 바로 스터디를 시작해 봅시다!

 

 

 

함수 생성 방법

함수를 생성하는 간단한 방법은 아래와 같습니다.

def new_function():
    print("이것은 새로운 함수 입니다.")

이러면 new_function 이라는 함수가 생성이 된 것 입니다.

하지만 이 함수는 매개변수, 즉 파라미터가 없습니다. 또한 리턴값도 없죠.

 

위 코드를 한번 실행해 보시면 아무런 출력이 나타나지 않습니다.

함수 생성 방법1

하지만, 함수가 없는것은 아닙니다. 생성이 되었을뿐, 호출이 되지 않아서 그런것 이죠.

호출 하는 방법은 아래와 같습니다.

def new_function():
    print("이것은 새로운 함수 입니다.")

new_function()

제일 아래에 new_function() 이라는 구문이 추가 되었죠?

이러면 아래와 같이 함수가 호출이 되고, 내부의 print문이 출력 되는것을 확인 할 수있습니다.

함수 생성 방법2

이렇게 첫번째 함수를 만들어 보셨습니다.

 

 

 

매개변수와 리턴값을 이용한 함수 생성 방법

다음은 파라미터라고 하는 매개변수와 리턴값을 사용하는 함수를 생성 해볼께요.

여러분들에게 너무 익숙한 구구단을 이용해 보았습니다.

두 수를 입력(매개변수) 하면 그 두수의 곱셈 결과를 출력(리턴값) 하는 형태의 함수 입니다.

코드는 아래와 같습니다.

#함수 매개변수(파라미터)와 반환값
#구구단 함수
def gugu(num1, num2): #구구단
    result = num1 * num2
    print("입력한 두 수의 곱셈 결과는 {0} 입니다.".format(result))
    return result

print(gugu(3,4))

우선 함수를 정의하는 def 부분을 먼저 보면 num1, num2를 입력 받아서 result라는 변수에 그 두수의 곱셈 결과를 저장합니다.

그리고 결과를 출력하고 return 해줍니다.

 

그리고 아래에 보면 함수를 실행할때 print(gugu(3,4)) 라고 입력이 되어 있는데, 물론 gugu(3,4) 라고만 해도 3과 4를 곱한 결과가 출력이 됩니다. 하지만 그것은 함수 내부의 print 문에 의하여 출력이 되는것 이고, return값까지 출력을 하려면 print 함수로 gugu함수 호출을 감싸주어야 합니다.

 

결과는 아래와 같습니다.

매개변수와 리턴값을 이용한 함수 생성 방법1

이미 눈치를 채셨겠지만, 3과 4의 값을 바꾸면 다른 결과를 받아 볼 수 있겠죠?

참 쉽습니다.

 

다른거 해보겠습니다.

#커피포인트 적립

cn1120 = 3 #고객번호 cn1120의 기존 포인트는 3이다

def coffee_point(cn1120, cups): #커피포인트 적립
    sum_point = cn1120 + cups
    print("고객님의 기존포인트는 {0} 점이며, 이번에 {1} 점이 추가되었습니다.".format(cn1120, cups))
    print("최종 적립 포인트는 {0} 점 입니다.".format(sum_point))
    return sum_point

print(coffee_point(cn1120, 5))

이번에는 여러분들 커피 많이 사드시죠?

커피 포인트를 적립하는 함수를 만들어 볼께요.

우선 고객번호가 cn1120이라는 고객이 있습니다.

이 고객의 기존 포인트는 3입니다. 이번에 커피집에 와서 5잔을 주문하여 5개를 더 적립 해줘야 하는것 이죠.

 

우선 cn1120이라는 변수에 3을 넣고, 코드에서 함수를 정의하는 def 부분을 보면 함수에 고객번호 변수와 함께 이번에 새로 적립할 cups 라는 변수를 매개변수로 입력을 합니다.

그리고 sum_point에서 두 값을 더하게 됩니다. 그리고 다음은 기존 포인트와 적립포인트를 출력하고, 최종 sum_point를 출력 해주게 됩니다.

 

그리고 마지막에 함수를 호출 합니다.

출력되는 결과를 보겠습니다.

매개변수와 리턴값을 이용한 함수 생성 방법1

두개의 print 문과 return값 까지 출력이 잘 되었습니다.

 

 

 

마지막으로 커피포인트가 쌓였으니, 커피포인트를 사용하는 함수를 만들어 보겠습니다.

우선 코드를 보시겠습니다.

#커피포인트 사용
#예를들어 포인트 10개가 있으면 커피 한잔이 무료!

cn1121 = 14
def coffee_point_use(cn1121): #커피포인트 사용
    if cn1121 < 10:
        print("포인트가 부족합니다.")
        print("무료커피 획득까지 {0} 점이 남았습니다.".format(10 - cn1121))
        return cn1121
    else:
        cn1121 = cn1121 - 10
        print("커피 포인트 사용이 완료 되었습니다.")
        print("잔여 포인트는 {0} 점 입니다.".format(cn1121))
        return cn1121

print(coffee_point_use(cn1121))

우선 고객번호 cn1121인 고객은 포인트가 14개 있습니다.

그리고 함수의 정의 부분인 def를 보니, 고객 포인트 변수인 cn1121에 10개 이상의 포인트가 있는지 확인을 합니다.

10개 미만의 포인트가 있을때는 포인트가 부족하고, 앞으로 몇개를 더 모아야 하는지를 출력하고, 현재 포인트를 리턴합니다.

 

그렇지 않고 10개 이상의 포인트가 있다면 포인트중 10개를 차감하고, 잔여포인트를 출력 및 리턴해주는 함수 입니다.

이젠 코드를 보고 이해가 좀 되시죠?

 

결과를 보겠습니다.

매개변수와 리턴값을 이용한 함수 생성 방법2

14점이 있었으니, 무료 커피를 받고 4점이 남았음을 출력값을 통해서 확인 할 수 있습니다.

만약, 포인트가 9점이라면 어떻게 출력이 되는지 확인 해볼께요. 위에서 첫줄에 cn1121 변수를 14에서 9로 바꿔서 실행 하시면 됩니다.

결과를 보겠습니다.

매개변수와 리턴값을 이용한 함수 생성 방법3

무료커피까지는 1점의 포인트가 더 남았다고 출력이 되고, 현재 포인트가 리턴되는것을 확인 할 수 있습니다.

 

오늘은 이렇게 파이썬의 함수 생성, 파라미터 및 반환값 사용법에 대해서 함께 공부해 봤습니다.

생각보다 쉽죠?

 

오늘도 좋은하루 보내시고.. 열공 합시다!!

감사합니다!!

 

##지난강의 보러가기##

2020/09/22 - [python 기초강의] - 파이썬 for문을 이용한 변수 생성 기본 문법 독학 #12

 

파이썬 for문을 이용한 변수 생성 기본 문법 독학 #12

파이썬 for문을 이용한 변수 생성 기본 문법 독학 #12 안녕하세요. 오늘은 for문을 이용해서 변수를 간단하게 생성할수 있는 방법을 소개 해드립니다. 한줄for문이라고도 하던데, 리스트내 변수들��

stricky.tistory.com

 

##SQL강의 보러가기##

2020/08/07 - [Database/sql 강의] - MySQL SQL 독학 강의 전체 A to Z

 

MySQL SQL 독학 강의 전체 A to Z

MySQL SQL 독학 강의 A to Z MySQL SQL 독학 강의를 마치며.. 안녕하세요. sTricky입니다. 2002년 3월 17일에 시작했던 MySQL SQL 독학 강의가 25편을 마지막으로 대장정의 막을 내렸습니다. 물론, 아직 다루지..

stricky.tistory.com

 

by.sTricky