Python - Function (함수)

닉네임유저·2023년 8월 3일

Python - 기초 문법

목록 보기
10/13
post-thumbnail

Function - 함수

간단하게 요약하면 함수는 특정 작업을 수행하는 코드 블록

호출해서 여러번 사용하는 재사용성이 있다.

코드를 간결하고, 읽기 쉽게 만들어주는 작업


함수 선언

def 함수이름(매개변수1,매개변수2,매개변수3.....):
	함수의 실행내용
	return 결과값

함수이름 : 재사용성이 되는 함수

매개변수(Parameters) : 함수에 전달되는 입력값, 함수가 호출될 때 매개변수에 값이 전달되어 실행, 선택적이거나, 없을 수도있음

매개변수는 일반적으로 변수처럼 사용 할 수 있다 , 다만 함수안에서만 쓸수 있는 지역변수로 한정된다.

return : 함수가 결과 값을 반환할때 사용 , 함수가 값을 반환하지 않을 수 도 있으며, 없을경우 기본적으로 None 을 반환

중요한 이야기 인데 , 함수는 리턴을 쓰는 순간 멈추고, 그 밑의 코드는 전부 Dead code , 곧 죽은 코드이다
함수를 만들때는 데이터 베이스가 들어가는 공간을 제공해야 사용이 가능하다, 아니면 사용을 못한다.

함수의 기본적인 사용법

def temp_func(temp_):  # 사용할 매개변수는 함수안에서만 사용할수있는 지역변수이다.
    print("Hello Function!", temp_)

str_ = "Study"  # 변수선언 - 문자열

temp_func(str_)
def add_nums(x, y):
    result = x + y
    return result

result_value = add_nums(1, 2)
print(result_value)

함수의 기본적인 움직임 - 코드를 분배한다.

# 초간단 두수 입력 계산기
# 사칙연산의 기본적인 움직임으로 코드를 나눈다.

def plus(a=0, b=0):
    print(a + b)
    return

def mins(a=0, b=0):
    print(a - b)
    return

def mul(a=0, b=0):
    print(a * b)
    return

def div(a=0, b=0):
    print(a / b)
    return

def power(a=0, b=0):
    print(a ** b)
    return

plus(2, 5)
mins(4, 2)
mul(5, 5)
div(6, 2)
power(9, 2)

다중 함수

  • 리턴값을 받는 함수가 여러개일떄 사용
  • 리턴값은 보통 1개만 씁니다. 다만 함수는 여러 값을 동시에 반환하는 함수를 작성할 수 있게 해주는 기능을 제공합니다.
def temp_multi(t):
    t1 = t * 30
    t2 = t * 60
    t3 = t * 90
    return t1, t2, t3

print(temp_multi(10))
def multiple_returns():
    return 1, 2, 3

a, b, c = multiple_returns()

print(a)  # 1
print(b)  # 2
print(c)  # 3

중첩 함수

  • 함수 내에서 반복되는 작업을 수행하는데 사용

  • 또는 외부에서 액세스 할 필요가 없는 'Helper' 함수를 만드는데 사용

  • 주의사항 : 부모 함수를 호출하지 않고, 안에 있는 중첩된 자식 함수는 정의되지 않는다.

def outer_function(x):
    def inner_function(y):
        return y + 2
    return inner_function(x) * 2

result = outer_function(5)  # (5 + 2) * 2 = 14
print(result)
  • 클로저(Closure) : 내부함수가 외부 함수의 변수를 기억할 수 있는 기능
def outer_function(x):
    def inner_function(y):
        return y + x  
    return inner_function

closure = outer_function(10)
print(closure(5)) 

Lambda

lambda : 표현식을 사용하여 간단하고 읽기 쉽게 만드는 함수

TMI 로 유명한 프로그래머들은 람다식 함수를 좋게 생각하지 않는다.

  • 이유는 다양한데, 가독성이 이해하기 어려워서 기피하거나
  • 복잡한 로직을 처리하는데 제한성이 있습니다.
  • 오류가 발생하여 디버깅 처리를 할떄 , 디버깅이 어렵습니다. 등등...

그런데 필요할때는 써야해서 알아둘 필요가 있다.

# 람다 기본적 구조
lambda arguments: expression
# 람다 함수는 함수이름을 가지지 않습니다.
plus = lambda x,y: x+y
print(add(2,3)) # 출력 : 5
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x ** 2, numbers) # ** : 거듭제곱
print(list(squared))  # 출력 값 : [1, 4, 9, 16, 25]
profile
이것저것 다해보는 개발자

0개의 댓글