산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 - 함수

이전 페이지다음 페이지

함수는 관련된 단일 작업을 수행하는 데 사용되는 조직화되고 재사용 가능한 코드 블록입니다. 함수는 애플리케이션에 더 나은 모듈성을 제공하고 높은 수준의 코드 재사용을 제공합니다.

이미 알고 있듯이 Python은 print() 등과 같은 많은 내장 함수를 제공하지만 고유한 함수를 만들 수도 있습니다. 이러한 함수를 사용자 정의 함수라고 합니다.

함수 정의

기능을 정의하여 필요한 기능을 제공할 수 있습니다. 다음은 Python에서 함수를 정의하는 간단한 규칙입니다.

구문

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 [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

  1. Python 익명/람다 함수
  2. 파이썬 생성기
  3. 파이썬 클로저
  4. 파이썬 데코레이터
  5. Stratasys Insight의 10가지 인기 기능
  6. 프로그램 예제가 있는 C++ 함수
  7. EXAMPLE이 있는 Python String strip() 함수
  8. 예제가 있는 Python Lambda 함수
  9. Python abs() 함수:절대값 예제
  10. 예제가 있는 Python round() 함수