산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 함수 마스터하기: 문법, 유형, 실전 예제

파이썬 함수

이 글에서는 함수가 무엇인지, 문법, 구성 요소, 함수 유형, 파이썬에서 함수 만드는 법을 배웁니다.

영상: 파이썬 함수 소개

파이썬에서 함수란?

파이썬에서 함수는 특정 작업을 수행하는 관련 문장들의 그룹입니다.

함수는 프로그램을 더 작고 모듈화된 조각으로 나눕니다. 프로그램이 커질수록 함수는 코드를 더 체계적이고 관리하기 쉽게 만듭니다.

또한 반복을 피하고 코드를 재사용 가능하게 합니다.

함수 문법

def function_name(parameters):
    """docstring"""
    statement(s)

위 함수 정의는 다음 구성 요소로 이루어집니다.

  1. 함수 헤더 시작을 알리는 키워드 def.
  2. 함수를 고유하게 식별하는 함수 이름. 파이썬 식별자 작성 규칙을 따릅니다.
  3. 함수에 값을 전달하는 매개변수(인자). 선택 사항.
  4. 함수 헤더 끝을 표시하는 콜론(:).
  5. 함수 기능을 설명하는 선택적 문서화 문자열(docstring).
  6. 함수 본문을 이루는 하나 이상의 유효한 파이썬 문장. 같은 들여쓰기 레벨(보통 4칸) 유지.
  7. 함수에서 값을 반환하는 선택적 return 문.

함수 예제

def greet(name):
    """이 함수는 매개변수로 전달된 사람에게 인사합니다."""
    print("Hello, " + name + ". Good morning!")

파이썬에서 함수 호출하는 법

함수를 정의하면 다른 함수, 프로그램, 파이썬 프롬프트에서 호출할 수 있습니다. 함수 호출은 함수 이름에 적절한 매개변수를 붙여 쓰면 됩니다.

>>> greet('Paul')
Hello, Paul. Good morning!

함수 정의와 함께 위 코드를 파이썬 프로그램에서 실행해 출력을 확인하세요.

def greet(name):
    """이 함수는 매개변수로 전달된 사람에게 인사합니다."""
    print("Hello, " + name + ". Good morning!")
greet('Paul')

참고: 파이썬에서 함수 정의는 항상 함수 호출보다 앞에 있어야 합니다. 그렇지 않으면 에러 발생. 예:

# 함수 호출
greet('Paul')
# 함수 정의
def greet(name):
    """이 함수는 매개변수로 전달된 사람에게 인사합니다."""
    print("Hello, " + name + ". Good morning!")
# Error: name 'greet' is not defined

독스트링(Docstrings)

함수 헤더 뒤 첫 문자열을 독스트링이라 하며 documentation string의 줄임말입니다. 함수가 무엇을 하는지 간단히 설명하는 데 쓰입니다.

선택 사항이지만 문서화는 좋은 프로그래밍 습관입니다. 지난주 저녁 메뉴를 기억 못 한다면 항상 코드에 문서를 남기세요.

위 예제에서 함수 헤더 바로 아래 독스트링이 있습니다. 독스트링이 여러 줄로 늘어나게 삼중 따옴표를 주로 사용합니다. 이 문자열은 함수의 __doc__ 속성으로 접근 가능합니다.

예를 들어:

파이썬 셸에서 다음을 실행해 출력 확인:

>>> print(greet.__doc__)
이 함수는 매개변수로 전달된 사람에게 인사합니다.

독스트링에 대해 더 알고 싶으면 Python Docstrings를 방문하세요.


return 문

return 문은 함수를 종료하고 호출한 곳으로 돌아갑니다.

return 문법

return [expression_list]

이 문장은 평가되어 반환될 표현식을 포함할 수 있습니다. 표현식이 없거나 return 문 자체가 함수 안에 없으면 함수는 None 객체를 반환합니다.

예:

>>> print(greet("May"))
Hello, May. Good morning!
None

여기서 None은 반환된 값인데, greet()가 이름을 직접 출력하고 return 문을 쓰지 않았기 때문입니다.


return 예제

def absolute_value(num):
    """이 함수는 입력된 숫자의 절댓값을 반환합니다."""
    if num >= 0:
        return num
    else:
        return -num
print(absolute_value(2))
print(absolute_value(-4))

출력

2
4

파이썬에서 함수 작동 원리

파이썬 함수 마스터하기: 문법, 유형, 실전 예제

변수의 스코프와 수명

변수의 스코프는 프로그램에서 변수가 인식되는 부분입니다. 함수 내부에서 정의된 매개변수와 변수는 외부에서 보이지 않으므로 지역 스코프를 가집니다.

변수의 수명은 메모리에 존재하는 기간입니다. 함수 내 변수 수명은 함수가 실행되는 동안입니다.

함수에서 반환하면 변수들은 파괴됩니다. 따라서 함수는 이전 호출의 변수 값을 기억하지 못합니다.

함수 내 변수 스코프를 보여주는 예제:

def my_func():
    x = 10
    print("Value inside function:", x)
x = 20
my_func()
print("Value outside function:", x)

출력

Value inside function: 10
Value outside function: 20

여기서 x 초깃값은 20. 함수 my_func()가 x를 10으로 바꿨지만 함수 밖 값에는 영향 없음.

함수 안 x와 밖 x는 이름이 같아도 서로 다른 변수(서로 다른 스코프)입니다.

반면 함수 밖 변수는 내부에서 보입니다. 전역 스코프를 가집니다.

함수 내부에서 이 값들을 읽을 수는 있지만 변경(쓰기)은 못 합니다. 함수 밖 변수 값을 수정하려면 global 키워드로 전역 변수 선언 필요.


함수 유형

기본적으로 함수는 다음 두 유형으로 나눌 수 있습니다:

  1. 내장 함수(Built-in functions) - 파이썬에 기본 탑재된 함수.
  2. 사용자 정의 함수(User-defined functions) - 사용자가 직접 정의한 함수.

python

  1. 파이썬 연산자 마스터하기: 종합 가이드
  2. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  3. 파이썬 람다 함수: 익명 함수 실전 가이드
  4. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  5. Python 제너레이터: 효율적 이터레이션과 고급 활용
  6. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  7. Python 데코레이터 마스터하기: 전문 기법으로 함수 강화
  8. Stratasys FDM 프린팅 최적화를 위한 Insight 필수 기능 10가지
  9. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  10. 파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례