Python 함수
- 이전 페이지 Python For 루프
- 다음 페이지 Python Lambda
함수는 호출될 때만 실행되는 코드 블록입니다。
데이터(파라미터라고도 합니다)를 함수에 전달할 수 있습니다。
함수는 데이터를 결과로 반환할 수 있습니다。
함수 생성
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)
- 이전 페이지 Python For 루프
- 다음 페이지 Python Lambda