글 작성자: nouu

함수

http://www.yes24.com/Product/Goods/91433923

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24

나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생

www.yes24.com

 

목적

데이터 구조 및 알고리즘 공부 전 간단히 파이썬 문법을 살펴보는 의미에서 작성한다.

 

 

함수

프로그래밍을 하다 보면 똑같은 코드가 반복적으로 사용되어야 할 때가 있다. 함수를 사용하지 않는다면 소스코드를 일일이 작성해야 되므로, 소스코드가 길어지고 코드 또한 비효율적으로 커진다. 이렇듯 함수는 알고리즘 해결 과정에서 동일한 알고리즘을 반복적으로 수행해야 할 때 사용된다. 

 

'''
def 함수명(매개변수) : 
	실행할 소스코드 
    return 반환 값
'''

def add(a, b) : 
	return a + b 
    
print(add(3, 7))
print(add(4, 9))


def exp(a, b) : 
	return a**b
    
print(exp(3, 3))

 

또한 return 문 없이 함수를 작성할 수도 있다. (이럴 경우 return 대신 print 출력문을 사용하여 해결 but return을 사용하는 습관을 길러야 프로그래밍을 수행하는데 있어 수월해짐)

 

'''
def 함수명(매개변수) : 
	print문
'''

def division(a, b) : 
    print(f"해당 함수의 결과는 다음과 같다 : {a / b}")
    
division(6, 3)

또한 함수 내 parameter 혹은 인자를 호출하는 과정에서 parameter의 변수를 직접 지정하여 값을 넣을 수 있다. 예를 들어서 함수 처리 과정에서 매개변수로 a, b가 사용될 때 함수를 호출하는 라인에서 a와 b를 지칭하여 값을 넣을 수 있다. 예시를 보면 이해가 될 것이다. 

 

def quotient(dividend, divisor) : 
	print(f"몫을 구하는 함수의 결과 : {dividend // divisor}" )
    
# parameter 변수명을 지정하여 값을 넣을 수 있다. (이러한 문법이 있다고 인지만 하면 됨)
quotient(divisor = 2, dividend = 6)

 

함수 안에서 함수 밖의 변수 데이터를 변경해야 하는 경우가 있다. 이 때 함수에서 global 키워드를 사용한다. (전역 scope에 대한 변수를 함수 선언 시 선언 내 지역 scope 처럼 사용 가능하다.)

 

a = 0 

def incrementFunc() :
	# 다음과 같이 전역 scope에 있는 변수를 끌어 쓸 수 있다. 이 때 사용하는 키워드는 global
	global a
    a +=1
    
    
for i in range(10) : 
	incrementFunc()
    
print(a)

 

마지막으로 람다 표현식(lambda expree)을 사용할 수 있다. 람다 표현식을 사용하면 함수를 간단하게 표현할 수 있다. 

 

def add(a, b) : 
	return a + b 
    
# 람다 표현식(lambda express)로 구현한 add() 메서드 
# lambda 매개변수 : 표현식 (꼭 기억!)
print(lambda a, b : a + b)(3, 6))