파이썬 함수
함수는 호출될 때만 실행되는 코드 블록입니다.
매개변수라고 하는 데이터를 함수에 전달할 수 있습니다.
함수는 결과로 데이터를 반환할 수 있습니다.
함수 생성
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 + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
인수 는 종종 Python 문서에서 args 로 단축됩니다 .
매개변수 또는 인수?
매개변수 와 인수 라는 용어 는 같은 용도로 사용할 수 있습니다. 즉, 함수에 전달되는 정보입니다.
함수의 관점에서:
매개변수는 함수 정의에서 괄호 안에 나열된 변수입니다.
인수는 호출될 때 함수에 전송되는 값입니다.
인수의 수
기본적으로 함수는 올바른 수의 인수로 호출되어야 합니다. 즉, 함수에 2개의 인수가 필요한 경우 더도 말고 덜도 말고 2개의 인수를 사용하여 함수를 호출해야 합니다.
예시
이 함수는 2개의 인수를 예상하고 2개의 인수를 가져옵니다.
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
예시
이 함수는 2개의 인수를 예상하지만 1개만 얻습니다.
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")
임의 인수, *args
함수에 전달할 인수의 수를 모르는 경우 *
함수 정의에서 매개변수 이름 앞에 추가하십시오.
이런 식으로 함수는 튜플 인수를 수신하고 그에 따라 항목에 액세스할 수 있습니다.
예시
인수의 수를 알 수 없는 *
경우 매개변수 이름 앞에 다음 을 추가합니다.
def my_function(*kids):
print("The youngest child
is " + kids[2])
my_function("Emil", "Tobias", "Linus")
임의 인수 는 종종 Python 문서에서 *args 로 단축됩니다 .
키워드 인수
key = value 구문 을 사용하여 인수를 보낼 수도 있습니다 .
이런 식으로 인수의 순서는 중요하지 않습니다.
예시
def my_function(child3, child2, child1):
print("The youngest child
is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
키워드 인수 라는 문구 는 종종 파이썬 문서에서 kwargs 로 단축됩니다.
임의의 키워드 인수, **kwargs
함수에 전달할 키워드 인수의 수를 모르는 경우 **
함수 정의에서 매개변수 이름 앞에 별표 두 개를 추가합니다.
이런 식으로 함수는 인수 사전 을 수신하고 그에 따라 항목에 액세스할 수 있습니다.
예시
키워드 인수의 수를 알 수 없는
**
경우 매개변수 이름 앞에 double을 추가하십시오.
def my_function(**kid):
print("His last name is " + kid["lname"])
my_function(fname = "Tobias", lname = "Refsnes")
임의의 Kword 인수 는 종종 Python 문서에서 **kwargs 로 단축됩니다 .
기본 매개변수 값
다음 예는 기본 매개변수 값을 사용하는 방법을 보여줍니다.
인수 없이 함수를 호출하면 기본값을 사용합니다.
예시
def my_function(country = "Norway"):
print("I am from " +
country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
목록을 인수로 전달
인수의 모든 데이터 유형(문자열, 숫자, 목록, 사전 등)을 함수에 보낼 수 있으며 함수 내에서 동일한 데이터 유형으로 처리됩니다.
예를 들어 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))
합격 성명
function
정의는 비워둘 수 없지만 어떤 이유로 function
내용이 없는 정의가 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\nRecursion Example Results")
tri_recursion(6)