함수를 호출하는 방법 Python (예)
⚡ 스마트 요약
기능 Python 함수는 호출될 때 실행되는 재사용 가능한 코드 블록으로, `def` 문으로 정의됩니다. 함수는 인수를 받고 값을 반환하며, 각 함수에 속하는 문장들을 그룹화하기 위해 일관된 들여쓰기를 사용합니다.
기능이란? Python?
A 기능 Python 프로시저는 참조될 때 실행되는 코드 조각입니다. 프로그램 내 여러 곳에서 코드를 활용하기 위해 사용됩니다. 프로시저는 메서드 또는 프로시저라고도 합니다. Python print(), input(), compile(), exec()와 같은 다양한 내장 함수를 제공하지만, 사용자가 직접 함수를 만들 수 있는 자유도 제공합니다.
함수를 정의하고 호출하는 방법 Python
의 함수 Python 함수는 "def" 문 뒤에 함수 이름과 괄호( () )가 오는 것으로 정의됩니다.
예:
"def func1():" 명령어를 사용하여 함수를 정의하고 함수를 호출해 보겠습니다. 함수의 출력은 "I am learning"이 될 것입니다. 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" 함수를 작성하면 "들여쓰기 오류: 들여쓰기된 블록이 필요합니다"라는 오류가 발생합니다.
이제 "print" 함수 앞에 들여쓰기(공백)를 추가하면 예상대로 출력될 것입니다.
최소 한 칸 들여쓰기만으로도 코드가 정상적으로 작동합니다. 하지만 모범 사례로, 함수 호출 시 3~4칸 정도 들여쓰기를 하는 것이 좋습니다.
들여쓰기를 선언할 때는 코드의 나머지 부분에서도 동일한 들여쓰기를 유지해야 합니다. 예를 들어, 아래 스크린샷에서 "still in func1"이라는 다른 문장을 호출할 때, 첫 번째 print 문 바로 아래에 들여쓰기가 선언되어 있지 않으면 "들여쓰기 해제가 다른 들여쓰기 수준과 일치하지 않습니다."라는 들여쓰기 오류가 발생합니다.
이제 두 문장에 동일한 들여쓰기를 적용하고 같은 줄에 정렬하면 예상대로 결과가 나옵니다.
함수 반환 값은 어떻게 되나요?
반환 명령은 Python 함수 호출자에게 어떤 값을 반환할지 지정합니다. 다음 예제를 통해 이를 이해해 보겠습니다.
1단계) 이 함수는 아무것도 반환하지 않습니다.
함수가 "반환"하지 않는 경우를 여기서 볼 수 있습니다. 예를 들어, 4의 제곱을 구하고 싶고, 코드를 실행하면 "16"이 나와야 합니다. 단순히 "print x*x" 코드를 사용하면 16이 나오지만, "print square" 함수를 호출하면 "None"이 출력됩니다. 이는 함수를 호출할 때 재귀 호출이 발생하지 않고 함수의 끝부분으로 넘어가기 때문입니다. Python 함수의 끝을 벗어나는 경우 "None"을 반환합니다.
2단계) 인쇄 명령을 할당 명령으로 바꿉니다.
이를 더 명확하게 하기 위해 출력 명령을 할당 명령으로 바꿔 보겠습니다. 출력 결과를 확인해 보겠습니다.
"print square (4)" 명령을 실행하면 실제로 객체의 값이 반환됩니다. 여기서는 실행할 특정 함수가 없으므로 "None"이 반환됩니다.
3단계) 'return' 함수를 사용하여 코드를 실행합니다.
이제 "return" 명령어를 사용하여 출력을 얻는 방법을 살펴보겠습니다. "return" 함수를 사용하고 코드를 실행하면 "16"이라는 출력이 나타납니다.
4단계) '사각형 인쇄' 명령 실행
기능 Python 그 자체가 객체이고, 객체는 어떤 가치를 갖고 있습니다. 여기서는 방법을 살펴보겠습니다. Python 객체를 다룹니다. "print square" 명령을 실행하면 객체의 값이 반환됩니다. 인수를 전달하지 않았으므로 실행할 특정 함수가 없어 기본값(0x021B2D30)인 객체의 위치가 반환됩니다. 실제 상황에서는 Python 이 프로그램을 사용한다면 아마 이 작업을 할 필요는 없을 겁니다.
함수의 인수
인수는 함수가 호출될 때 함수에 전달되는 값입니다.
즉, 호출하는 쪽에서는 인자이고, 함수 쪽에서는 매개변수입니다.
방법을 보자 Python 논리는 효과가 있다.
단계 1) 인수는 함수 정의 부분에서 선언됩니다. 함수를 호출할 때 아래와 같이 해당 인수에 값을 전달할 수 있습니다.
단계 2) 인수에 대한 기본값을 선언하려면 함수 정의 부분에서 해당 인수에 값을 할당합니다.
예: x에는 기본값이 없습니다. y의 기본값은 0입니다. multiply 함수를 호출할 때 인수를 하나만 제공하면, Python 제공된 값을 x에 할당하는 동안ping y 값은 0입니다. 따라서 x*y의 곱은 0입니다.
단계 3) 이번에는 기본값인 y=0 대신 y=2로 값을 변경하면 (4×2)=8이라는 결과가 출력됩니다.
단계 4) 인수를 전달하는 순서도 변경할 수 있습니다. Python여기서는 x와 y 값의 순서를 바꿔 x=4, y=2로 만들었습니다.
단계 5) 여러 개의 인수를 배열로 전달할 수도 있습니다. 이 예제에서는 (*args) 함수를 호출하여 여러 개의 인수(1, 2, 3, 4, 5)를 전달합니다.
예: 우리는 여러 개의 인수를 숫자(1, 2, 3, 4, 5)로 선언했습니다. (*args) 함수를 호출하면 출력은 (1, 2, 3, 4, 5)가 됩니다.
팁 :
- 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)















