logo

파이썬 함수

파이썬 함수 특정 작업을 반환하는 명령문 블록입니다. 아이디어는 일반적으로 또는 반복적으로 수행되는 작업을 함께 모아서 다른 입력에 대해 동일한 코드를 계속해서 작성하는 대신 함수 호출을 수행하여 해당 코드에 포함된 코드를 반복해서 재사용할 수 있도록 하는 것입니다.

일부 함수 사용의 이점

  • 코드 가독성 향상
  • 코드 재사용성 향상

Python 함수 선언

함수를 선언하는 구문은 다음과 같습니다.



파이썬 함수

Python 함수 선언의 구문

Python의 함수 유형

다음은 다양한 유형의 함수입니다. 파이썬 :

  • 내장 라이브러리 기능: 이것들은 표준 기능 Python에서 사용할 수 있는 것입니다.
  • 사용자 정의 함수: 우리는 요구 사항에 따라 자체 기능을 만들 수 있습니다.

Python에서 함수 만들기

Python에서 다음을 사용하여 함수를 정의할 수 있습니다. 데프 예어. 필요에 따라 모든 유형의 기능과 속성을 추가할 수 있습니다. 다음 예제를 통해 Python에서 함수를 작성하는 방법을 이해할 수 있습니다. 이런 방식으로 def 키워드를 사용하여 Python 함수 정의를 만들 수 있습니다.

파이썬3
# A simple Python function def fun(): print('Welcome to GFG')>

Python에서 함수 호출

Python에서 함수를 만든 후 함수 Python의 이름과 해당 특정 함수의 매개 변수를 포함하는 괄호를 사용하여 함수를 호출할 수 있습니다. 다음은 def 함수 Python을 호출하는 예입니다.

파이썬3
# A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>

산출:

Welcome to GFG>

매개변수가 있는 Python 함수

C/C++ 또는 Java에 대한 경험이 있다면 다음 사항에 대해 생각해 봐야 합니다. 반환 유형 기능의 데이터 형식 논쟁의. 이는 Python에서도 가능합니다(특히 Python 3.5 이상).

매개변수가 있는 Python 함수 구문

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # 함수 반환 표현식의 본문>

다음 예제에서는 인수 및 매개변수 이 기사의 뒷부분에서 배우게 될 것이므로 이해하지 못한 경우 다시 돌아올 수 있습니다.

파이썬3
def add(num1: int, num2: int) ->int: '''두 숫자 더하기''' num3 = num1 + num2 return num3 # 드라이버 코드 num1, num2 = 5, 15 ans = add(num1, num2) print(f'의 추가 {num1} 및 {num2} 결과 {ans}.')>

산출:

The addition of 5 and 15 results 20.>

메모: 다음 예는 구문 1을 사용하여 정의됩니다. 연습을 위해 구문 2로 변환해 보세요.

파이썬3
# some more functions def is_prime(n): if n in [2, 3]: return True if (n == 1) or (n % 2 == 0): return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))>

산출:

False True>

Python 함수 인수

인수는 함수의 괄호 안에 전달되는 값입니다. 함수에는 쉼표로 구분된 인수가 얼마든지 있을 수 있습니다.

이 예에서는 함수에 인수로 전달된 숫자가 짝수인지 홀수인지 확인하기 위해 Python에서 간단한 함수를 만듭니다.

파이썬3
# A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function evenOdd(2) evenOdd(3)>

산출:

even odd>

Python 함수 인수의 유형

Python은 함수 호출 시 전달할 수 있는 다양한 유형의 인수를 지원합니다. Python에는 다음과 같은 함수 인수 유형이 있습니다.

트리맵
  • 기본 인수
  • 키워드 인수(명명된 인수)
  • 위치 인수
  • 임의의 인수 (가변 길이 인수 *args 및 **kwargs)

각 유형에 대해 자세히 알아보겠습니다.

기본 인수

기본 인수 해당 인수에 대한 함수 호출에 값이 제공되지 않은 경우 기본값을 가정하는 매개변수입니다. 다음 예에서는 Python에서 함수를 작성하기 위한 기본 인수를 보여줍니다.

파이썬3
# Python program to demonstrate # default arguments def myFun(x, y=50): print('x: ', x) print('y: ', y) # Driver code (We call myFun() with only # argument) myFun(10)>

산출:

x: 10 y: 50>

C++ 기본 인수와 마찬가지로 함수의 인수 수에는 기본값이 있을 수 있습니다. 그러나 기본 인수가 있으면 오른쪽에 있는 모든 인수에도 기본값이 있어야 합니다.

키워드 인수

아이디어는 호출자가 매개변수의 순서를 기억할 필요가 없도록 호출자가 값으로 인수 이름을 지정할 수 있도록 하는 것입니다.

파이썬3
# Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname='Geeks', lastname='Practice') student(lastname='Practice', firstname='Geeks')>

산출:

Geeks Practice Geeks Practice>

위치 인수

우리는 위치 인수 함수 호출 중에 첫 번째 인수(또는 값)가 name에 할당되고 두 번째 인수(또는 값)가 age에 할당됩니다. 위치를 변경하거나 위치 순서를 잊어버린 경우 값이 잘못된 위치에 사용될 수 있습니다. 아래 사례-2 예에서 볼 수 있듯이 이름에 27이 할당되고 나이에 Suraj가 할당됩니다.

파이썬3
def nameAge(name, age): print('Hi, I am', name) print('My age is ', age) # You will get correct output because  # argument is given in order print('Case-1:') nameAge('Suraj', 27) # You will get incorrect output because # argument is not in order print('
Case-2:') nameAge(27, 'Suraj')>

산출:

  Case-1:  Hi, I am Suraj My age is 27   Case-2:  Hi, I am 27 My age is Suraj>

임의의 키워드 인수

Python 임의의 키워드 인수에서, *args 및 **kwargs 특수 기호를 사용하여 다양한 개수의 인수를 함수에 전달할 수 있습니다. 두 가지 특수 기호가 있습니다.

  • *Python의 args(키워드가 아닌 인수)
  • **Python의 kwargs(키워드 인수)

예시 1: 가변 길이 비키워드 인수

파이썬3
# Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>

산출:

자바 문자열의 값
Hello Welcome to techcodeview.com>

예 2: 가변 길이 키워드 인수

파이썬3
# Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')>

산출:

first == Geeks mid == for last == Geeks>

독스트링

함수 뒤의 첫 번째 문자열을 문서 문자열 또는 독스트링 요컨대. 이는 함수의 기능을 설명하는 데 사용됩니다. 함수에서 독스트링을 사용하는 것은 선택 사항이지만 좋은 습관으로 간주됩니다.

아래 구문을 사용하여 함수의 독스트링을 인쇄할 수 있습니다.

  Syntax:   print(function_name.__doc__)>

예: 함수에 Docstring 추가하기

파이썬3
# A simple Python function to check # whether x is even or odd def evenOdd(x):  '''Function to check if the number is even or odd''' if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function print(evenOdd.__doc__)>

산출:

Function to check if the number is even or odd>

함수 내의 Python 함수

다른 함수 내부에 정의된 함수를 내부 기능 또는 중첩 함수 . 중첩된 함수는 둘러싸는 범위의 변수에 액세스할 수 있습니다. 내부 함수는 함수 외부에서 일어나는 모든 일로부터 보호할 수 있도록 사용됩니다.

파이썬3
# Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love techcodeview.com' def f2(): print(s) f2() # Driver's code f1()>

산출:

I love techcodeview.com>

Python의 익명 함수

파이썬에서는 익명 함수 함수에 이름이 없다는 의미입니다. 우리가 이미 알고 있듯이 def 키워드는 일반 함수를 정의하는 데 사용되고 람다 키워드는 익명 함수를 만드는 데 사용됩니다.

파이썬3
# Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))>

산출:

343 343>

Python의 재귀 함수

재귀 Python에서는 함수가 자신을 호출하는 경우를 나타냅니다. 문제를 해결하기 위해 재귀 함수를 구축해야 하는 경우가 많습니다. 수학적 및 재귀적 문제.

재귀 함수는 종료되지 않는 루프처럼 될 수 있으므로 재귀 함수를 사용할 때는 주의해서 수행해야 합니다. 재귀 함수를 생성하는 동안 종료 문을 확인하는 것이 좋습니다.

파이썬3
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>

산출

24>

여기서는 숫자의 계승을 계산하는 재귀 함수를 만들었습니다. 이 함수의 종료 문은 n이 0과 같을 때임을 알 수 있습니다.

무료 IP 구성

Python 함수의 Return 문

function return 문은 함수를 종료하고 함수 호출자로 돌아가 지정된 값이나 데이터 항목을 호출자에게 반환하는 데 사용됩니다. return 문의 구문은 다음과 같습니다.

return [expression_list]>

return 문은 변수, 표현식 또는 함수 실행이 끝날 때 반환되는 상수로 구성될 수 있습니다. return 문에 위의 항목 중 어느 것도 없으면 None 객체가 반환됩니다.

예: Python 함수 반환 문

파이썬3
def square_value(num):  '''This function returns the square  value of the entered number''' return num**2 print(square_value(2)) print(square_value(-4))>

산출:

4 16>

참조로 전달 및 값으로 전달

한 가지 중요한 점은 Python에서는 모든 변수 이름이 참조라는 것입니다. Python 함수에 변수를 전달하면 객체에 대한 새로운 참조가 생성됩니다. Python의 매개변수 전달은 Java의 참조 전달과 동일합니다.

파이썬3
# Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

산출:

[20, 11, 12, 13, 14, 15]>

참조를 전달하고 수신된 참조를 다른 것으로 변경하면 전달된 매개변수와 수신된 매개변수 간의 연결이 끊어집니다. 예를 들어, 아래 프로그램을 다음과 같이 생각해보세요:

파이썬3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

산출:

[10, 11, 12, 13, 14, 15]>

또 다른 예에서는 (함수 내에서) 새 값을 할당하면 참조 링크가 끊어지는 것을 보여줍니다.

파이썬3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that x is not modified # after function call. x = 10 myFun(x) print(x)>

산출:

10>

운동: 다음 코드의 출력을 추측해 보세요.

파이썬3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>

산출:

2 3>

빠른 링크

  • Python 함수에 대한 퀴즈
  • Python의 메소드와 함수의 차이점
  • Python의 퍼스트 클래스 함수
  • Python 함수에 관한 최근 기사 .

FAQ- Python 함수

Q1. 파이썬에서 함수란 무엇인가요?

Python 함수는 호출될 때만 실행되는 코드 블록입니다. 특정 작업을 반환하도록 프로그래밍되어 있습니다. 매개변수라는 함수에 값을 전달할 수 있습니다. 반복적인 작업을 수행하는 데 도움이 됩니다.

Q2. Python의 4가지 유형의 함수는 무엇입니까?

Python의 주요 함수 유형은 다음과 같습니다.

  • 내장 기능
  • 사용자 정의 함수
  • 람다 함수
  • 재귀 함수

Q3. 시간 이제 Python으로 함수를 작성해 보겠습니다. ?

Python에서 함수를 작성하려면 def 키워드를 사용한 다음 함수 이름을 작성할 수 있습니다. 사용 후 기능 코드를 제공할 수 있습니다. ':'. 함수를 정의하는 기본 구문은 다음과 같습니다.

def 함수 이름():

#성명

Q4. Python에서 함수의 매개변수는 무엇입니까?

Python의 매개변수는 함수를 호출할 때 인수로 전달된 값을 취하는 변수입니다. 함수에는 여러 개의 매개변수가 있을 수 있습니다. Python에서 매개변수에 기본값을 설정할 수도 있습니다.