파이썬 기초

파이썬 함수 def 선언 후 사용 방법 및 용도는?

코니코니 2022. 9. 30. 21:00
반응형

파이썬 함수 def 선언 후 사용 방법 및 용도는?


파이썬에서 정말 중요하고 많이 사용되는 함수에 대해서 알아보려 합니다. 함수의 의미는 원래 define로 정의하다로 해석이 되지만 저는 그냥 함축 되어 있는 것! 이라고 해석을 하는게 더 이해가 빠를 것 같다고 봅니다. 말 그대로 어떤 코드들을 def문(함수)에 넣어서 함축적으로 만들어 사용을 한다는 것인데 어떤 식으로 사용이 되는지 바로 알아보도록 하겠습니다.

먼저 함수를 작성하는 기본적인 방법은 다음과 같습니다.

def hamsu_1():
    print('안녕 나는 첫번째 함수야!')
    return

def hamsu_2():
    return '안녕 나는 두번째 함수야!'

def hamsu_3():
    print('안녕 나는 세번째 함수야!')

def hamsu_4():
    return

hamsu_1()
hamsu_2()
hamsu_3()
hamsu_4()

==결과==
안녕 나는 첫번째 함수야!
안녕 나는 세번째 함수야!

아주 간략하게 예시를 적어놨기 때문에 바로 이해를 하신 분들도 있겠죠! 함수 작성 방법은 def를 먼저 작성하여 함수를 선언해주고 한칸 띈 다음 원하는 함수명을 넣어주면 됩니다. 그리고 ()괄호를 만들어주고 :콜론으로 마무리를 해주면 됩니다. 괄호에 대해서는 아래에서 설명을 할게요.

함수를 사용하는 방법은 함수명을 적고 ()와 같은 방식으로 괄호를 만들어주면 끝입니다. 결과를 보면 첫번째 함수와 세번째 함수만 출력이 되는 것을 볼 수 있는데요. 함수를 불러왔을 때 함수 안의 코드가 진행되기 때문에 print()문이 들어간 함수들만 결과에서 확인을 할 수 있는 것이 되겠죠?

def hamsu_2():
    return '안녕 나는 두번째 함수야!'

a = hamsu_2()
print(a)

==결과==
안녕 나는 두번째 함수야!

그럼 함수에서 return은 왜 쓰이는 걸까요? 리턴은 값을 돌려주는 것을 말합니다. 함수를 사용하면 함수 안의 코드가 실행됩니다. 그리고 리턴에 도달했을 때 함수는 종료가 되며, 만약 리턴에 어떤 값이 있을 때 그 값을 가져오면서 빠져나온다는 것이죠.

이러한 리턴은 함수에서 탈출을 하는 용도와 특정 값을 가지고 나오는 용도 두가지로 사용이 됩니다. 그렇다면 결과적으로 hamsu_4()라는 함수는 불러와도 실행이 되자마자 끝나버리는 것이겠죠. 아무 의미가 없는 함수입니다.

그리고 print()문이 있기 때문에 출력은 되지만 리턴값에 아무런 내용이 없는 hamsu_3()의 경우에도 단순하게 출력만 하고 증발하는 함수라고 볼 수 있습니다.

이러한 함수는 특히 어떤 반복되는 작업에서 비슷한 코드가 계속 사용될 때 더욱더 유용하게 활용을 할 수 있습니다. 여기서는 위에서 함수를 선언할 때 괄호를 넣는 이유도 같이 설명을 합니다.

def hamsu_1(su1, su2):
    susu = su1 + su2
    return susu

def hamsu_2(su1, su2):
    return su1 + su2

def hamsu_3(text1, text2):
    return text1 + ' 그냥 문자열! ' + text2

h1 = hamsu_1(1, 2)
h2 = hamsu_2(5, 5)
h3 = hamsu_3('문자1', '문자2')

print(h1)
print(h2)
print(h3)

==결과==
3
10
문자1 그냥 문자열! 문자2

함수를 사용할 때 괄호에 매개변수를 넣어주고 해당 값을 함수 내에서 사용을 할 수 있습니다. 아주 쉽게 예시를 적어놨는데 매개변수란 def test(변수): 와 같이 함수명 뒤 괄호에 들어가는 값을 말합니다. 함수를 작성할 때 이 변수 명은 원하는 이름으로 적어주면 되고 이 변수를 어떻게 사용할지를 함수 안에서 코드 작성을 해주면 됩니다.

def hamsu_1(su1, su2):
    susu = su1 + su2
    return susu

h1 = hamsu_1(1, 2)
print(h1)

==결과==
3

첫번째 예시만 보더라도 결과가 3이 나오는 이유를 알 수 있습니다. hamsu_1에는 두개의 매개변수가 존재하고 이 함수를 사용하기 위해서 su1 = 1, su2 = 2를 넣어준 것을 볼 수 있죠. 이 매개변수에 값을 채워준 함수는 h1이라는 변수에 넣어줬고 h1 출력을 하면 3이 나오게 됩니다. 함수 내에서 리턴 부분에 더해준 두 값을 돌아오게 해놨기 때문에 출력 시 더해진 값이 나오게 됩니다.

def hamsu_2(su1, su2):
    return su1 + su2

두번째 함수처럼 리턴 안에서 값을 계산 후 바로 값을 돌아오게 해줘도 됩니다.

def hamsu_3(text1, text2):
    return text1 + ' 그냥 문자열! ' + text2

세번째 함수처럼 텍스트 값을 서로 더해줄 수도 있죠. 문자열(str)과 숫자(int)는 서로 조합이 안되니 str 문자열 끼리만 연결이 됩니다!

개발을 하다보면 비슷한 코드가 많이 들어가는 상황이 생깁니다. 반복문을 사용하여 코드의 가독성과 효율을 좋게 만들 수 있겠지만 거기에 def문 함수까지 활용이 된다면 더욱더 간결하고 멋진? 코드를 작성할 수 있겠죠!

반응형