Programming Language/Python

[Python]함수 - 기본

Sergemeow 2023. 2. 18. 16:53
  • 분해(Decomposition)

기능을 분해하고 재사용 가능하게한다.

  • 추상화(Abstraction)

복잡한 내용을 모르더라도 사용할 수 있도록 함.

재사용성, 가독성, 생산성을 늘려줌.


함수는 크게 3가지로 분류

  • 내장함수(Built-in functions) 파이썬에 기본적으로 포함된 함수(print, len 등)
  • 외장함수 import문을 통해 사용하며, 외부 라이브러리에서 제공하는 함수
  • 사용자 정의 함수 사용자가 정의하여 사용가능한 함수

함수(function)

  • 특정한 기능을 하는 코드의 조각(묶음)
  • 특정 코드를 매번 다시 작성하지 않고, 필요시에만 호출하여 간편히 사용

함수의 기본 구조

  • 선언과 호출(define & call)
  • 입력(input)
  • 문서화(docstring)
  • 범위(scope)
  • 결과값(output)
def pstdev(data, mu=None): # keyword, name, parameter
		"""Return the square root of the population variance.
			See ``pvariance`` for arguments and other details
			>>> pstdev([1.3, 2.5, 4,5])
		"""
		var = pvariance(data, mu)
		try:
				return var.sqrt()
		except Attribution
  • 함수의 선언은 def 키워드를 활용함
  • 들여쓰기를 통해 function body를 작성함 docstring은 함수 body 앞에 선택적으로 작성가능 작성시에는 첫번째 문장에 문자열 “””
def functionName(parameter):
		#code block
		return returningValue
  • 함수는 함수명()으로 호출하여 사용

함수의 Output

  • Void function
    • 명시적인 return값이 없는 경우 none을 반환하고 종료
    • 예)
    def A(x):
    		print(x)
    
  • Value returning function
    • 함수 실행 후, return 문을 통해 값 반환
    • return을 하게 되면 함수가 바로 종료
    • 두개 이상의 값 반환을 원한다면 튜플, 리스트 같은 컨테이너 사용
    def min_and_product(x, y):
    		return(x - y, x * y) # 튜플
    

Parameter : 함수를 정의할 때, 함수 내부에서 사용되는 변수

Argument: 함수를 호출 할 때 넣어주는 값

  • Positional Arguments
    • 기본적으로 함수 호출 시 argument는 위치에 따라 함수 내에 전달됨
  • Keyword Arguments
    • 직접 변수의 이름으로 특정 argument를 전달할 수 있음
    • keyword argument 다음에 positional argument를 활용할 수 없음
    def add(x, y):
    		return x + y
    
    add(x = 2, y = 5)
    add(2, 5)
    add(2, y = 5)
    add(x = 2, 5) => ERROR
    
    Default Arguments Values
    • 기본값을 지정하여 함수 호출 시 argument 값을 설정하지 않도록 함
    • 정의된 것보다 더 적은 개수의 argument들로 호출될 수 있음

'Programming Language > Python' 카테고리의 다른 글

[Python]함수 - 종류  (0) 2023.02.18
[Python]함수 - 범위  (0) 2023.02.18
[Python]제어문 - 반복문  (0) 2023.02.18
[Python]제어문 - 조건문  (0) 2023.02.18
[Python]Data Casting  (0) 2023.02.18