함수의 핵심 개념과 사용법

프로그래밍에서 함수란?

현실 세계에서 도구 상자를 생각해보자. 작업 중에 필요한 도구를 꺼내 쓰고, 사용하지 않을 때는 다시 보관한다. 프로그래밍의 함수도 이와 유사한 역할을 한다. 여러 줄의 코드를 하나의 이름 아래 묶어두고 필요할 때 호출하여 사용할 수 있다.

기본 문법 구조

def 함수이름():
    print('함수 예시입니다')

# 호출 방법
함수이름()
  • def 키워드: 함수를 선언하기 위해 반드시 사용해야 함
  • 함수명: 변수명 규칙과 동일하게 의미가 분명하도록 지정
  • 문서화 주석: 함수의 목적이나 기능을 설명하는 선택적 요소
  • 함수 본문: 실제 실행될 코드 로직
  • 반환값(return): 함수 실행 후 결과 값을 돌려주는 선택적 명령
  • 매개변수: 함수 실행 전에 제공되는 입력 값들

정의와 호출 규칙

중요 사항:

  • 함수는 반드시 정의된 후에 호출되어야 함
  • 정의 시점에는 문법 오류만 검사하며, 코드는 실행되지 않음
  • 하나의 return 문만 실행되며, 만나는 즉시 함수 종료

내부 작동 원리

  1. 메모리 공간에 함수 코드를 저장
  2. 함수명에 해당 메모리 주소 연결
  3. 함수명() 형태로 호출하여 코드 실행

함수 종류

내장 함수와 사용자 정의 함수

내장 함수는 언어 자체에서 제공하는 함수이며, 사용자 정의 함수는 반복적인 코드 블록을 재사용하기 위해 개발자가 만든 함수이다.

사용자 정의 함수 세부 분류

  • 인자 없는 함수: 호출 시 별도의 입력 값 없이 바로 실행
  • 인자 있는 함수: 외부에서 받은 값을 기반으로 다른 결과 생성
  • 빈 함수: 내용이 없는 함수로 주로 설계 단계에서 활용

함수 매개변수 이해

형식 인자와 실제 인자

  • 형식 인자(Formal Parameter): 함수 정의 시 괄호 안에 선언하는 변수
  • 실제 인자(Actual Parameter): 함수 호출 시 전달하는 실제 값

실제 인자는 형식 인자에 할당되어 함수 내부 코드에서 사용된다.

위치 기반 인자

정의된 순서대로 값을 전달해야 하며, 개수와 위치가 정확히 일치해야 함.

def 최대값구하기(x, y):
    print(x, y)
    return x if x > y else y

결과 = 최대값구하기(10, 20)
print(결과)

키워드 인자

변수명을 직접 지정하여 전달 가능하나, 위치 인자와 혼용 시 위치 인자가 먼저 와야 함.

def 데이터출력(첫번째, 두번째, 세번째):
    print(첫번째, 두번째, 세번째)

데이터출력(1, 세번째=3, 두번째=2)

기본값 인자

함수 정의 시 특정 값으로 초기화하며, 호출 시 별도 지정이 없으면 기본값 사용.

def 설정값(a, b, c=100):
    print(a, b, c)

설정값(1, b=20)      # 출력: 1 20 100
설정값(1, 2, c=50)   # 출력: 1 2 50

가변 길이 인자

전달되는 인자의 개수가 유동적일 때 사용하며, 압축 해제 연산자(*)와 유사하게 동작.

  • 위치 가변 인자: *변수명
  • 키워드 가변 인자: **변수명
def 다중입력(x, y, *추가입력, **딕셔너리입력):
    print(x, y, 추가입력, 딕셔너리입력)

다중입력(1, 2, 3, 4, 5)                    # 1 2 (3, 4, 5) {}
다중입력(1, 2, 3, extra=4, more=5)         # 1 2 (3,) {'extra': 4, 'more': 5}

# 호출 시에도 적용 가능
튜플데이터 = (10, 20, 30, 40)
딕셔너리데이터 = {'x': 100, 'y': 200}
다중입력(*튜플데이터)                      # 10 20 (30, 40) {}
다중입력(**딕셔너리데이터)                 # 100 200 () {}

태그: python function parameter variable

5월 26일 18:10에 게시됨