Python 함수

함수는 호출될 때만 실행되는 코드 블록입니다。

데이터(파라미터라고도 합니다)를 함수에 전달할 수 있습니다。

함수는 데이터를 결과로 반환할 수 있습니다。

함수 생성

Python에서는 다음과 같이 def 키워드로 함수 정의:

예제

def my_function():
  print("Hello from a function")

함수 호출

함수를 호출하려면, 함수 이름 뒤에 괄호를 사용합니다:

예제

def my_function():
  print("Hello from a function")
my_function()

실제 예제 실행

파라미터

정보는 함수에 파라미터로 전달될 수 있습니다。

파라미터는 함수 이름 뒤의 괄호 내에 지정됩니다. 필요에 따라 필요한 만큼의 파라미터를 추가할 수 있으며, 쉼표로 구분합니다。

아래 예제는 파라미터 (fname)를 가진 함수가 있습니다. 이 함수를 호출할 때, 이름을 전달하고 함수 내에서 그 이름을 사용하여 전체 이름을 출력합니다:

예제

def my_function(fname):
  print(fname + " Gates")
my_function("Bill")
my_function("Steve")
my_function("Elon")

실제 예제 실행

기본 파라미터 값

아래 예제는 기본 파라미터 값을 사용하는 방법을 보여줍니다。

만약 파라미터 없는 함수를 호출하면 기본 값이 사용됩니다:

예제

def my_function(country = "China"):
  print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

실제 예제 실행

List로 전달

함수에 전달하는 파라미터는 어떤 데이터 타입이든 될 수 있습니다(문자열, 숫자, 리스트, 딕셔너리 등), 그리고 함수 내에서는 동일한 데이터 타입으로 간주됩니다.

예를 들어, List를 파라미터로 전달하면, 그것이 함수에 도착할 때까지 List(리스트)로 남습니다:

예제

def my_function(food):
  for x in food:
    print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

실제 예제 실행

반환 값

함수가 값을 반환하려면 return 문장:

예제

def my_function(x):
  return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

실제 예제 실행

키워드 파라미터

key = value 문법을 사용하여 파라미터를 전달할 수 있습니다.

파라미터 순서는 중요하지 않습니다.

예제

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

실제 예제 실행

Python 문서에서는 '키워드 파라미터'라는 단어를 일반적으로 kwargs라고 간단히 합니다.

임의 파라미터

함수에 전달할 파라미터 수를 알 수 없다면, 함수 정의의 파라미터 이름 앞에 *를 추가하세요.

이렇게 하면 함수는 파라미터 튜플을 받아서 각 항목을 적절히 접근할 수 있습니다:

예제

파라미터 수가 알 수 없을 때는 파라미터 이름 앞에 *를 추가하세요:

def my_function(*kids):
  print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

실제 예제 실행

pass 문

함수 정의는 비어 있을 수 없습니다. 하지만 어떤 이유로든 내용이 없는 함수 정의를 작성하셨다면, 오류를 피하기 위해 pass 문을 사용해 주세요.

예제

def myfunction:
  pass

실제 예제 실행

재귀

파이썬도 함수 재귀를 받아들입니다. 이는 정의된 함수가 자신을 호출할 수 있다는 것을 의미합니다.

재귀는 일반적인 수학 및 프로그래밍 개념입니다. 이는 함수가 자신을 호출하는 것을 의미합니다. 이렇게 하면 데이터를 반복적으로 방문하여 결과를 달성할 수 있습니다.

개발자들은 재귀를 매우 신중하게 다루어야 합니다. 이는 영원히 종료되지 않는, 또는 너무 많은 메모리나 프로세서 능력을 사용하는 함수를 쉽게 작성할 수 있습니다. 그러나 올바르게 작성되면, 재귀는 매우 효율적이고 수학적으로 우아한 프로그래밍 방법이 될 수 있습니다.

이 예제에서는,tri_recursion() 은 자신을 호출하는 함수("재귀")로 정의됩니다. 우리는 k 변수를 데이터로 사용하며, 각 재귀 호출에서 -1로 감소시킵니다. 조건이 0보다 작지 않을 때(예를 들어, 0일 때), 재귀가 종료됩니다.

새로운 개발자들에게는, 작동 방식을 이해하기 위해 시간이 걸릴 수 있습니다. 가장 좋은 방법은 테스트하고 수정하는 것입니다.

예제

재귀 예제:

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result
print("\n\n재귀 예제 결과")
tri_recursion(6)

실제 예제 실행