Skip to content

함수 기초 #

Find similar titles
  • 최초 작성자

Structured data

Category
Programming
Description
파이썬 함수 기초
Image
URL

파이썬 함수 #

파이썬 함수란 무엇인가? #

입력값을 가지고 어떤 일을 수행 후 그 결과물을 내어놓는 것을 말한다. 쉽게 말해 파이썬의 자료형인 숫자형, 문자형, 리스트, 딕셔너리가 김밥의 속재료라 하면, if문, while문, for문은 김밥의 틀을 잡아주는 쌀밥과 김, 함수는 김밥을 단단히 포장해줄 은박지라고 생각하면 된다.

그렇다면 함수를 왜 만드는 것일까? #

반복되는 구조를 하나로 묶어 모듈화 시킬 수 있다. 모듈화란 하나씩 정의된 변수들을 몇 개의 덩어리로 묶어 하나의 프로그램을 만드는 것이다. 쉽게 말해, 자동차를 조립하는 것 처럼 말이다. 이는 프로그램 흐름의 파악을 용이하게 하며, 프로그램 중 어디에서 오류가 나는지 알아차릴 수 있다. 또한 코드를 읽고, 유지하고, 재사용하기 쉽게 만들어준다.


파이썬 함수의 기본 구조 #

파이썬 함수의 기본 구조는 다음과 같다. 아래의 코드를 하나씩 뜯어보자.

    >>> def 함수이름(매개변수):
    ...     수행부분1
    ...     수행부분2
            …

def 함수이름(매개변수) #

  • def는 definition의 줄임말이며 예약어이다.
  • def 뒤에는 함수이름과 매개변수가 묶인 괄호가 따라온다.
  • 함수이름은 사용자가 마음대로 지정할 수 있다.

매개변수 #

  • 함수에 입력으로 전달되는 값을 받는 변수이다.
  • 매개변수는 없어도 되며, 하나 또는 여러 개가 존재할 수 있다.

수행부분 #

  • 함수의 몸통을 이루고 있는 부분이다.
  • if, while, for문을 포함한 다양한 파이썬 제어문이 입력되며, 그 외의 다양한 함수가 사용되어 수행문장을 입력될 수 있다.
  • 원칙적으로 수행부분은 들여쓰기가 되어야한다.

매개변수와 인수 #

매개변수 (parameter) 인수 (arguments)
의미 함수에 입력으로 전달된 값을 받는 변수이다. 함수를 호출할 때 전달하는 입력값이다.
특징 값이 변할 수 있다. 이미 지정된 값이다.

파이썬 함수의 형태 #

전형적인 함수는 ‘입력값(인수)’과 ‘리턴값’이 존재한다. 그리고 파이썬의 함수는 입력값과 리턴값의 유무에 따라 형태가 달라진다. 간단한 예시와 함께 보자.

일반적인 함수 #

아래의 함수는 a와 b라는 입력값이 주어졌을 때, 두 값을 더하는 myadd라는 사용자 함수이다.

    >>> def myadd(a, b): # a와 b는 매개변수
    ...     return a+b # a+b는 리턴값

    >>> x = myadd(7, 2) # 3과 4는 인수
    >>> print(x)
    7

입력값이 없을 때 #

매개변수가 들어가는 괄호 안 부분이 비어있는 함수이면, 리턴값만 출력한다. 다음은 입력값이 없는 함수에 대한 예시이다.

    >>> def mysay(): # 매개변수가 없다.
    ...     return “Hi”

    >>> x = mysay()
    >>> print(x)
    Hi

매개변수가 없을지라도 리턴값은 변수로 받아서 출력을 해야한다.

리턴값이 없을 때 #

리턴값이 없다면, 리턴값으로 받을 변수를 지정하지 않아도 출력이 가능하다. 다음 예시함수는 리턴값 없이 매개변수가 포함된 문자열이 조합된 프린트만 함수이다.

    >>> def myadd(a, b):
    ...     print(f“{a} + {b} = {a+b}”) # 리턴값이 아닌 print function을 이용한 수행부분이다.

    >> myadd(7, 2)
    7 + 2 = 9

입력값 및 리턴값이 둘 다 없을 때 #

입력값과 리턴값이 둘 다 없다면, 그저 함수만 입력을 하면 된다.

    >>> def mysay(): # 매개변수가 없다.
    ...    print(‘Hi’) # 리턴값도 없다.

    >>> mysay()
    Hi

리턴값의 특징 #

앞에서 입력값과 리턴값의 유무에 따른 파이썬 함수의 형태를 살펴보았다. a와 b처럼 매개변수는 여러 값이 존재했다. 그렇다면 리턴값은 여러 값이 존재할 수 있을까? 아래의 함수는 a와 b를 더하거나 곱해서 리턴값이 두 개가 존재하는 함수이다.

    >>> def my_sample(a, b):
    ...    return a+b, a*b

    >>> x = my_sample(10, 2)
    >>> print(x)
    (20, 5)

위 함수는 리턴값이 튜플로 출력이 된다. 그렇다면 아래의 함수는 어떻게 출력이 될까?

    >>> def my_sample(a, b):
    ...    return a+b
    ...    return a*b

위 함수는 첫 번째 return인 a+b의 값만 출력이 된다. 즉, 리턴값은 항상 하나만 존재할 수 있다.


참조문헌 #

https://docs.python.org/3/tutorial/index.html https://docs.python.org/3/tutorial/controlflow.html#defining-functions


0.0.1_20230725_7_v68