Python/Python

[Python] 10. 함수(function)

구름솜:D 2024. 9. 8. 15:54
728x90

함수란?

- 특정한 기능을 수행하기 위해 사전에 만들어 놓은 프로그래밍 구문을 묶어 놓은 것

 

함수의 종류

내장함수) 별도의 라이브러리를 설치하지 않고 사용할 수 있는 함수

외장함수) 별도의 라이브러리를 설치하고 사용할 수 있는 함수

사용자 정의 함수) 사전에 정의된 내장함수 이외에 사용자가 임의로 원하는 기능을 만들어서 사용할 수 있는 함수

 

내장함수

별도의 라이브러리를 설치하지 않고 사용할 수 있는 함수

ex. print(), sum(), max(), input(), int() 등

 

 

외장함수

별도의 라이브러리를 설치하고 사용할 수 있는 함수

ex. import random - 난수(규칙이 없는 임의의 수)를 발생시키는 모듈

 

 

사용자 정의 함수

사전에 정의된 내장함수 이외에 사용자가 임의로 원하는 기능을 만들어서 사용할 수 있는 함수

사용자 정의 함수는 다음과 같은 형식으로 정의

 

1. lamda 함수

- 함수이름이 없는 익명함수

lambda 인자 : 표현식
add = lambda x : x + 100
add(10)    #110
add = lambda x, y : x+y
add(10,20)   #30
add = lambda x, y=0, z : (x+y)*z      #오류
add = lambda x, y=0, z=1 : (x+y)*z    #정상실행

  * 특정 인자에 default값을 선언하는 경우, default값을 선언한 변수 이후의 변수 모두다 default값을 선언해줘야한다.

 

2. def함수

- 일반 사용자 정의 함수로 함수이름의 정의

def 함수이름(입력파라미터):    
    문장1
    문장2
    [return 리턴값]
def add(n):   
	result = n+100
	return result
    
add(10)   #110
def add(num1, num2):    
	return num1+ num2
    
add(10,20)   #30

 

* lamda함수(익명함수)와 def함수(일반사용자정의함수)의 차이

- 일반함수는 객체를 만들고 재사용을 위해 함수를 메모리에 할당

- 익명함수는 한번 쓰이고 다음줄로 넘어가면 메모리 영역에서 사라짐

 

 

매개변수와 인수(인자)

매개변수(parameter) : 함수를 정의할 때 사용되는 변수(임의의 값)                           

인자=인수(argument) : 함수를 호출할 때 사용되는 값(실제로 함수가 호출될 때, 넘기는 값)

def add(num1, num2):    # num1, num2는 매개변
	return num1+ num2

add(10,20)              #10,20은 인수(인자)