함수를 호출하는 방법 Python (예)

⚡ 스마트 요약

기능 Python 함수는 호출될 때 실행되는 재사용 가능한 코드 블록으로, `def` 문으로 정의됩니다. 함수는 인수를 받고 값을 반환하며, 각 함수에 속하는 문장들을 그룹화하기 위해 일관된 들여쓰기를 사용합니다.

  • 🧩 정의문: 함수는 `def`, 함수 이름, 괄호로 정의되며, 들여쓰기된 문장 블록을 시작하는 콜론이 뒤따릅니다.
  • 📞 함수 호출: 함수 이름 뒤에 괄호를 쓰면 해당 함수의 코드가 실행되므로 동일한 로직을 여러 번 재사용할 수 있습니다.
  • ⌨️ 톱니 모양: Python 함수 본문을 중괄호 대신 일관된 들여쓰기로 그룹화하므로 공백이 누락되면 IndentationError가 발생합니다.
  • 🎯 인수 : 괄호 안에 전달되는 값은 매개변수가 되며, 기본값이나 키워드 인수를 통해 각 호출을 유연하게 만들 수 있습니다.
  • ↩️ 반환 값: return 문은 결과를 호출자에게 반환합니다. return 문이 없으면 함수는 None을 반환합니다.
  • 🤖 AI 지원: GitHub Copilot과 같은 AI 도우미는 간단한 입력만으로 함수 골격, 인수 및 문서 문자열을 생성합니다.

함수를 호출하는 방법 Python

기능이란? Python?

A 기능 Python 프로시저는 참조될 때 실행되는 코드 조각입니다. 프로그램 내 여러 곳에서 코드를 활용하기 위해 사용됩니다. 프로시저는 메서드 또는 프로시저라고도 합니다. Python print(), input(), compile(), exec()와 같은 다양한 내장 함수를 제공하지만, 사용자가 직접 함수를 만들 수 있는 자유도 제공합니다.

함수를 정의하고 호출하는 방법 Python

의 함수 Python 함수는 "def" 문 뒤에 함수 이름과 괄호( () )가 오는 것으로 정의됩니다.

예:

"def func1():" 명령어를 사용하여 함수를 정의하고 함수를 호출해 보겠습니다. 함수의 출력은 "I am learning"이 될 것입니다. Python 함수".

함수 정의 및 호출 Python

함수 호출 func1()은 우리의 def func1(): 함수를 호출하고 "I am learning"이라는 명령어를 출력합니다. Python 함수 없음.

여기에는 일련의 규칙이 있습니다. Python 프로그래밍 함수를 정의합니다.

  • 모든 인수 또는 입력 매개변수는 이 괄호 안에 넣어야 합니다.
  • 함수 첫 번째 문은 선택 사항일 수 있으며, 함수의 문서 문자열(docstring)을 나타냅니다.
  • 모든 함수 내부의 코드는 콜론(:)으로 시작해야 하며, 들여쓰기(공백)를 해야 합니다.
  • `return (expression)` 문은 함수를 종료하며, 선택적으로 호출자에게 값을 반환합니다. 인자가 없는 `return` 문은 `return None`과 같습니다.

들여쓰기(공백)의 의미 Python

우리가 익숙해지기 전에 Python 함수를 선언하려면 들여쓰기 규칙을 이해하는 것이 중요합니다. Python 함수에 적용되는 규칙이며, 이러한 규칙은 다른 요소에도 적용됩니다. Python 또한 조건문, 반복문 또는 변수 선언과 같은 작업도 포함됩니다.

Python 특정 들여쓰기 스타일을 따라 코드를 정의합니다. 왜냐하면 Python 함수는 중괄호처럼 함수의 시작과 끝을 명시적으로 나타내는 구문이 없으므로 들여쓰기에 의존해야 합니다. 간단한 예로 "print" 명령어를 살펴보겠습니다. `def func1():` 줄 바로 아래에 "print" 함수를 작성하면 "들여쓰기 오류: 들여쓰기된 블록이 필요합니다"라는 오류가 발생합니다.

함수 정의 및 호출 Python

이제 "print" 함수 앞에 들여쓰기(공백)를 추가하면 예상대로 출력될 것입니다.

함수 정의 및 호출 Python

최소 한 칸 들여쓰기만으로도 코드가 정상적으로 작동합니다. 하지만 모범 사례로, 함수 호출 시 3~4칸 정도 들여쓰기를 하는 것이 좋습니다.

들여쓰기를 선언할 때는 코드의 나머지 부분에서도 동일한 들여쓰기를 유지해야 합니다. 예를 들어, 아래 스크린샷에서 "still in func1"이라는 다른 문장을 호출할 때, 첫 번째 print 문 바로 아래에 들여쓰기가 선언되어 있지 않으면 "들여쓰기 해제가 다른 들여쓰기 수준과 일치하지 않습니다."라는 들여쓰기 오류가 발생합니다.

함수 정의 및 호출 Python

이제 두 문장에 동일한 들여쓰기를 적용하고 같은 줄에 정렬하면 예상대로 결과가 나옵니다.

함수 정의 및 호출 Python

함수 반환 값은 어떻게 되나요?

반환 명령은 Python 함수 호출자에게 어떤 값을 반환할지 지정합니다. 다음 예제를 통해 이를 이해해 보겠습니다.

1단계) 이 함수는 아무것도 반환하지 않습니다.

함수가 "반환"하지 않는 경우를 여기서 볼 수 있습니다. 예를 들어, 4의 제곱을 구하고 싶고, 코드를 실행하면 "16"이 나와야 합니다. 단순히 "print x*x" 코드를 사용하면 16이 나오지만, "print square" 함수를 호출하면 "None"이 출력됩니다. 이는 함수를 호출할 때 재귀 호출이 발생하지 않고 함수의 끝부분으로 넘어가기 때문입니다. Python 함수의 끝을 벗어나는 경우 "None"을 반환합니다.

함수 정의 및 호출 Python

2단계) 인쇄 명령을 할당 명령으로 바꿉니다.

이를 더 명확하게 하기 위해 출력 명령을 할당 명령으로 바꿔 보겠습니다. 출력 결과를 확인해 보겠습니다.

함수 정의 및 호출 Python

"print square (4)" 명령을 실행하면 실제로 객체의 값이 반환됩니다. 여기서는 실행할 특정 함수가 없으므로 "None"이 반환됩니다.

3단계) ​​'return' 함수를 사용하여 코드를 실행합니다.

이제 "return" 명령어를 사용하여 출력을 얻는 방법을 살펴보겠습니다. "return" 함수를 사용하고 코드를 실행하면 "16"이라는 출력이 나타납니다.

함수 정의 및 호출 Python

4단계) '사각형 인쇄' 명령 실행

기능 Python 그 자체가 객체이고, 객체는 어떤 가치를 갖고 있습니다. 여기서는 방법을 살펴보겠습니다. Python 객체를 다룹니다. "print square" 명령을 실행하면 객체의 값이 반환됩니다. 인수를 전달하지 않았으므로 실행할 특정 함수가 없어 기본값(0x021B2D30)인 객체의 위치가 반환됩니다. 실제 상황에서는 Python 이 프로그램을 사용한다면 아마 이 작업을 할 필요는 없을 겁니다.

함수 정의 및 호출 Python

함수의 인수

인수는 함수가 호출될 때 함수에 전달되는 값입니다.

즉, 호출하는 쪽에서는 인자이고, 함수 쪽에서는 매개변수입니다.

방법을 보자 Python 논리는 효과가 있다.

단계 1) 인수는 함수 정의 부분에서 선언됩니다. 함수를 호출할 때 아래와 같이 해당 인수에 값을 전달할 수 있습니다.

함수 정의 및 호출 Python

단계 2) 인수에 대한 기본값을 선언하려면 함수 정의 부분에서 해당 인수에 값을 할당합니다.

함수 정의 및 호출 Python

예: x에는 기본값이 없습니다. y의 기본값은 0입니다. multiply 함수를 호출할 때 인수를 하나만 제공하면, Python 제공된 값을 x에 할당하는 동안ping y 값은 0입니다. 따라서 x*y의 곱은 0입니다.

함수 정의 및 호출 Python

단계 3) 이번에는 기본값인 y=0 대신 y=2로 값을 변경하면 (4×2)=8이라는 결과가 출력됩니다.

함수 정의 및 호출 Python

단계 4) 인수를 전달하는 순서도 변경할 수 있습니다. Python여기서는 x와 y 값의 순서를 바꿔 x=4, y=2로 만들었습니다.

함수 정의 및 호출 Python

단계 5) 여러 개의 인수를 배열로 전달할 수도 있습니다. 이 예제에서는 (*args) 함수를 호출하여 여러 개의 인수(1, 2, 3, 4, 5)를 전달합니다.

예: 우리는 여러 개의 인수를 숫자(1, 2, 3, 4, 5)로 선언했습니다. (*args) 함수를 호출하면 출력은 (1, 2, 3, 4, 5)가 됩니다.

함수 정의 및 호출 Python

팁 :

  • In Python 2.7 버전에서는 함수 오버로딩이 지원되지 않습니다. 함수 오버로딩이란 동일한 이름을 가진 여러 메서드를 서로 다른 구현으로 생성할 수 있는 기능입니다. 2.7 버전부터는 함수 오버로딩이 완벽하게 지원됩니다. Python 3.
  • 메서드와 함수 사이에는 상당한 혼동이 있습니다. 메서드는 다음과 같습니다. Python 객체 인스턴스와 연관되어 있는 반면, 함수는 그렇지 않습니다. Python 메소드를 호출하면 해당 호출의 첫 번째 매개변수를 적절한 객체 참조에 바인딩합니다. 간단히 말해서 독립형 기능은 다음과 같습니다. Python 는 "함수"인 반면, 클래스나 인스턴스의 속성인 함수는 "메서드"입니다.

여기에 완전한 Python 3 코드

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

여기에 완전한 Python 2 코드

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

자주 묻는 질문

예. ㅏ Python 함수는 return 키워드 뒤에 쉼표로 구분하여 여러 값을 반환할 수 있습니다. Python 함수들을 튜플로 묶으면 호출자는 이를 개별 변수로 풀어낼 수 있습니다. 예를 들어, a, b = func() 와 같이 사용할 수 있습니다.

`*args`는 추가 위치 인수를 튜플로 모으고, `**kwargs`는 추가 키워드 인수를 딕셔너리로 ​​모읍니다. 둘 다 함수가 가변 개수의 입력을 받을 수 있도록 하며, `args`와 `kwargs`라는 이름은 관례일 뿐 필수 사항은 아닙니다.

독스트링은 함수의 동작을 설명하기 위해 함수 내부의 첫 번째 문장으로 배치되는 문자열 리터럴입니다. 세 개의 따옴표로 묶이며, 함수의 `__doc__` 속성이나 `help()` 함수를 통해 런타임에 읽을 수 있습니다.

람다는 `def` 대신 `lambda` 키워드를 사용하여 한 줄로 정의하는 간단한 익명 함수입니다. `map()`, `filter()`, `sorted()`와 같은 함수에 전달되는 짧고 일회성 로직에 적합합니다. 자세한 내용은 여기를 참조하세요. 람다 함수 안내서.

네. 자기 자신을 호출하는 함수를 재귀 함수라고 합니다. 재귀는 팩토리얼처럼 작고 유사한 하위 문제로 나눌 수 있는 문제를 해결하는 데 유용합니다. 모든 재귀 함수에는 호출을 중지하는 기준 사례가 필요합니다. 그렇지 않으면 재귀 함수가 제대로 작동하지 않습니다. Python RecursionError가 발생합니다.

지역 변수는 함수 내부에서 생성되며 해당 함수가 실행되는 동안에만 존재합니다. 전역 변수는 모든 함수 외부에서 정의되며 어디에서든 사용할 수 있습니다. 함수 내부에서 전역 변수를 변경하려면 먼저 `global` 키워드를 사용하여 변수를 선언해야 합니다.

GitHub Copilot은 함수 이름이나 간단한 주석을 기반으로 매개변수, 반환문, 독스트링을 포함한 전체 함수 본문을 제안합니다. 또한 예외 처리 및 테스트도 제안하여, 형식 지정 대신 로직에 집중할 수 있도록 도와줍니다.ping 기본 정의 블록.

함수는 AI 및 머신러닝 코드를 데이터 로딩, 전처리, 학습, 평가와 같은 재사용 가능한 단계로 구성합니다. 이를 통해 실험 코드를 읽기 쉽고 테스트하기 쉽게 만들 수 있으며, TensorFlow 및 scikit-learn과 같은 프레임워크는 호출하기 쉬운 이름의 함수를 통해 대부분의 동작을 제공합니다.

이 게시물을 요약하면 다음과 같습니다.