python
이전 페이지다음 페이지
함수는 관련된 단일 작업을 수행하는 데 사용되는 조직화되고 재사용 가능한 코드 블록입니다. 함수는 애플리케이션에 더 나은 모듈성을 제공하고 높은 수준의 코드 재사용을 제공합니다.
이미 알고 있듯이 Python은 print() 등과 같은 많은 내장 함수를 제공하지만 고유한 함수를 만들 수도 있습니다. 이러한 함수를 사용자 정의 함수라고 합니다.
기능을 정의하여 필요한 기능을 제공할 수 있습니다. 다음은 Python에서 함수를 정의하는 간단한 규칙입니다.
기능 블록은 def 키워드로 시작합니다. 그 뒤에 함수 이름과 괄호( ( ) )가 옵니다.
모든 입력 매개변수 또는 인수는 이 괄호 안에 넣어야 합니다. 이 괄호 안에 매개변수를 정의할 수도 있습니다.
함수의 첫 번째 명령문은 선택적 명령문일 수 있습니다(함수의 문서 문자열 또는 docstring). .
모든 함수 내의 코드 블록은 콜론(:)으로 시작하고 들여쓰기됩니다.
return [expression] 문은 함수를 종료하고 선택적으로 표현식을 호출자에게 다시 전달합니다. 인수가 없는 return 문은 return None과 동일합니다.
def functionname( parameters ): "function_docstring" function_suite return [expression]
기본적으로 매개변수에는 위치 동작이 있으므로 정의된 것과 동일한 순서로 매개변수에 알려야 합니다.
다음 함수는 문자열을 입력 매개변수로 받아 표준 화면에 출력합니다.
def printme( str ): "This prints a passed string into this function" print str return
함수를 정의하면 이름만 지정하고 함수에 포함될 매개변수를 지정하며 코드 블록을 구성합니다.
함수의 기본 구조가 완성되면 다른 함수에서 호출하거나 Python 프롬프트에서 직접 호출하여 실행할 수 있습니다. 다음은 printme() 함수를 호출하는 예입니다 -
라이브 데모#!/usr/bin/python # Function definition is here def printme( str ): "This prints a passed string into this function" print str return; # Now you can call printme function printme("I'm first call to user defined function!") printme("Again second call to the same function")
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다 -
I'm first call to user defined function! Again second call to the same function
Python 언어의 모든 매개변수(인수)는 참조로 전달됩니다. 이는 함수 내에서 매개변수가 참조하는 것을 변경하면 변경 사항이 호출하는 함수에도 다시 반영된다는 것을 의미합니다. 예를 들어 -
라이브 데모#!/usr/bin/python # Function definition is here def changeme( mylist ): "This changes a passed list into this function" mylist.append([1,2,3,4]); print "Values inside the function: ", mylist return # Now you can call changeme function mylist = [10,20,30]; changeme( mylist ); print "Values outside the function: ", mylist
여기서 우리는 전달된 객체의 참조를 유지하고 동일한 객체에 값을 추가합니다. 따라서 다음과 같은 결과가 나타납니다. -
Values inside the function: [10, 20, 30, [1, 2, 3, 4]] Values outside the function: [10, 20, 30, [1, 2, 3, 4]]
인수가 참조로 전달되고 호출된 함수 내에서 참조를 덮어쓰는 예가 하나 더 있습니다.
라이브 데모#!/usr/bin/python # Function definition is here def changeme( mylist ): "This changes a passed list into this function" mylist = [1,2,3,4]; # This would assig new reference in mylist print "Values inside the function: ", mylist return # Now you can call changeme function mylist = [10,20,30]; changeme( mylist ); print "Values outside the function: ", mylist
매개변수 mylist 함수 changeme에 로컬입니다. 함수 내에서 mylist를 변경해도 mylist에는 영향을 미치지 않습니다. . 이 함수는 아무 것도 수행하지 않으며 마지막으로 다음과 같은 결과를 생성합니다. -
Values inside the function: [1, 2, 3, 4] Values outside the function: [10, 20, 30]
다음 유형의 형식 인수를 사용하여 함수를 호출할 수 있습니다. -
필수 인수는 올바른 위치 순서로 함수에 전달되는 인수입니다. 여기서 함수 호출의 인수 개수는 함수 정의와 정확히 일치해야 합니다.
printme() 함수를 호출하려면 , 확실히 하나의 인수를 전달해야 합니다. 그렇지 않으면 다음과 같은 구문 오류가 발생합니다. -
라이브 데모#!/usr/bin/python # Function definition is here def printme( str ): "This prints a passed string into this function" print str return; # Now you can call printme function printme()
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Traceback (most recent call last): File "test.py", line 11, in <module> printme(); TypeError: printme() takes exactly 1 argument (0 given)
키워드 인수는 함수 호출과 관련이 있습니다. 함수 호출에서 키워드 인수를 사용할 때 호출자는 매개변수 이름으로 인수를 식별합니다.
이렇게 하면 Python 인터프리터가 제공된 키워드를 사용하여 매개변수와 값을 일치시킬 수 있기 때문에 인수를 건너뛰거나 순서가 맞지 않게 배치할 수 있습니다. printme()에 대한 키워드 호출을 할 수도 있습니다. 다음과 같은 방식으로 작동합니다 -
라이브 데모#!/usr/bin/python # Function definition is here def printme( str ): "This prints a passed string into this function" print str return; # Now you can call printme function printme( str = "My string")
위의 코드가 실행되면 다음 결과가 생성됩니다 -
My string
다음 예는 더 명확한 그림을 제공합니다. 매개변수의 순서는 중요하지 않습니다.
라이브 데모#!/usr/bin/python # Function definition is here def printinfo( name, age ): "This prints a passed info into this function" print "Name: ", name print "Age ", age return; # Now you can call printinfo function printinfo( age=50, name="miki" )
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Name: miki Age 50
기본 인수는 해당 인수에 대한 함수 호출에 값이 제공되지 않은 경우 기본값을 가정하는 인수입니다. 다음 예제는 기본 인수에 대한 아이디어를 제공하며, 전달되지 않으면 기본 연령을 인쇄합니다. −
라이브 데모#!/usr/bin/python # Function definition is here def printinfo( name, age = 35 ): "This prints a passed info into this function" print "Name: ", name print "Age ", age return; # Now you can call printinfo function printinfo( age=50, name="miki" ) printinfo( name="miki" )
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Name: miki Age 50 Name: miki Age 35
함수를 정의하는 동안 지정한 것보다 더 많은 인수에 대해 함수를 처리해야 할 수도 있습니다. 이러한 인수를 가변 길이라고 합니다. 필수 및 기본 인수와 달리 함수 정의에서 이름이 지정되지 않습니다.
키워드가 아닌 변수 인수가 있는 함수의 구문은 다음과 같습니다. -
def functionname([formal_args,] *var_args_tuple ): "function_docstring" function_suite return [expression]
별표(*)는 키워드가 아닌 모든 변수 인수의 값을 보유하는 변수 이름 앞에 배치됩니다. 이 튜플은 함수 호출 중에 추가 인수가 지정되지 않은 경우 비어 있습니다. 다음은 간단한 예입니다 -
라이브 데모#!/usr/bin/python # Function definition is here def printinfo( arg1, *vartuple ): "This prints a variable passed arguments" print "Output is: " print arg1 for var in vartuple: print var return; # Now you can call printinfo function printinfo( 10 ) printinfo( 70, 60, 50 )
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Output is: 10 Output is: 70 60 50
이러한 함수는 def를 사용하여 표준 방식으로 선언되지 않기 때문에 익명이라고 합니다. 예어. 람다를 사용할 수 있습니다. 작은 익명 함수를 만드는 키워드입니다.
람다 형식은 여러 인수를 사용할 수 있지만 표현식 형식으로 하나의 값만 반환합니다. 명령이나 여러 표현식을 포함할 수 없습니다.
람다에는 표현식이 필요하기 때문에 익명 함수는 인쇄를 직접 호출할 수 없습니다.
Lambda 함수에는 자체 로컬 네임스페이스가 있으며 매개변수 목록 및 글로벌 네임스페이스에 있는 변수 이외의 변수에 액세스할 수 없습니다.
람다가 함수의 한 줄 버전인 것처럼 보이지만 성능상의 이유로 호출 중에 함수 스택 할당을 전달하는 것이 목적인 C 또는 C++의 인라인 문과 동일하지 않습니다.
람다 구문 함수는 다음과 같은 단일 명령문만 포함합니다. -
lambda [arg1 [,arg2,.....argn]]:expression
다음은 lambda 기능 작동 형태 -
라이브 데모#!/usr/bin/python # Function definition is here sum = lambda arg1, arg2: arg1 + arg2; # Now you can call sum as a function print "Value of total : ", sum( 10, 20 ) print "Value of total : ", sum( 20, 20 )
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Value of total : 30 Value of total : 40
return [expression] 문은 함수를 종료하고 선택적으로 표현식을 호출자에게 다시 전달합니다. 인수가 없는 return 문은 return None과 동일합니다.
위의 모든 예는 값을 반환하지 않습니다. 다음과 같이 함수에서 값을 반환할 수 있습니다 -
라이브 데모#!/usr/bin/python # Function definition is here def sum( arg1, arg2 ): # Add both the parameters and return them." total = arg1 + arg2 print "Inside the function : ", total return total; # Now you can call sum function total = sum( 10, 20 ); print "Outside the function : ", total
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Inside the function : 30 Outside the function : 30
프로그램의 모든 변수는 해당 프로그램의 모든 위치에서 액세스할 수 없습니다. 변수를 선언한 위치에 따라 다릅니다.
변수의 범위는 특정 식별자에 액세스할 수 있는 프로그램 부분을 결정합니다. Python에는 두 가지 기본 변수 범위가 있습니다. -
함수 본문 내부에 정의된 변수는 로컬 범위를 가지며 외부에 정의된 변수는 전역 범위를 갖습니다.
즉, 지역 변수는 선언된 함수 내에서만 액세스할 수 있지만 전역 변수는 모든 함수에서 프로그램 본문 전체에서 액세스할 수 있습니다. 함수를 호출하면 내부에 선언된 변수가 범위에 포함됩니다. 다음은 간단한 예입니다 -
라이브 데모#!/usr/bin/python total = 0; # This is global variable. # Function definition is here def sum( arg1, arg2 ): # Add both the parameters and return them." total = arg1 + arg2; # Here total is local variable. print "Inside the function local total : ", total return total; # Now you can call sum function sum( 10, 20 ); print "Outside the function global total : ", total
위의 코드가 실행되면 다음 결과가 생성됩니다 -
Inside the function local total : 30 Outside the function global total : 0
python
파이썬 주요 기능이란 무엇입니까? Python 주요 기능 모든 프로그램의 시작점입니다. 프로그램이 실행되면 파이썬 인터프리터가 코드를 순차적으로 실행합니다. Main 함수는 Python 프로그램으로 실행될 때만 실행됩니다. 모듈로 가져온 경우 메인 기능을 실행하지 않습니다. 파이썬에서 def main() 함수는 무엇입니까? 이를 이해하려면 다음 예제 코드를 고려하십시오. def main() 예제 1 def main(): print (Hello World!) print (Guru99) 여기에서 두 개의 인쇄가
파이썬에서 함수란 무엇입니까? Python의 함수 참조될 때 실행되는 코드 조각입니다. 프로그램의 여러 위치에서 코드를 활용하는 데 사용됩니다. 방법 또는 절차라고도 합니다. Python은 print(), input(), compile(), exec() 등과 같은 많은 내장 함수를 제공하지만 자신만의 함수를 만들 수 있는 자유도 제공합니다. 이 튜토리얼에서는 배울 것입니다 파이썬에서 함수를 정의하고 호출하는 방법 Python에서 들여쓰기(공백)의 중요성 함수 반환 값은 어떻게 되나요? 함수의 인수 파이썬에서 함수를 정