[python] Function

ljkgb·2021년 1월 25일
0

Python

목록 보기
6/20
post-thumbnail

Function

1. 함수 정의 방법

def funtion_name(parameter): #parameter: 함수 내부에서 쓸 변수
	code

2. 예

1) 기본 사용 예

def first_func(w):
    print("hello, ", w)


word = "goodboy"
first_func(word)
  • 결과: hello, goodboy

2) return 사용

def return_func(w):
    value = "hello, " + str(w)
    return value


x = return_func('goodgirl')  
# return 사용시, 결과값으로 반환되는 값을 받을 변수 선언해야 함
print(x)
  • 결과: hello, goodgirl

3) 다중반환

def func_mul(x):
    y1 = x * 10
    y2 = x * 20
    y3 = x * 30
    return y1, y2, y3


x, y, z = func_mul(10)
print(x, y, z)
  • 결과: 100 200 300

4) 튜플, 리스트, 딕셔너리이용

def func_mul(x):
    y1 = x * 10
    y2 = x * 20
    y3 = x * 30
    return (y1, y2, y3)  #괄호로 묶으면 튜플


q = func_mul(20)
print(q)
  • 결과: (200, 400, 600) #튜플로 결과값 반환

5) 언팩킹
enumerate(열거하다) 함수

  • 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력받아 인덱스 값을 포함하는 enumerate객체를 리턴함
    *args: 튜플형태에서 많이사용, 갯수가 가변적이다!(별 하나)
def args_func(*args):  # 매개변수 명은 자유!
    for i, v in enumerate(args):     #i=인덱스 번호, v=문자열 출력
        print('result : {}'.format(i), v)
    print('----')


args_func('lee')
args_func('lee', 'park')
args_func('lee', 'park', 'kim')
  • 결과:
result : 0 lee
----
result : 0 lee
result : 1 park
----
result : 0 lee
result : 1 park
result : 2 kim
----

**kwargs: 딕셔너리형 반복(별두개)

def kwargs_func(**kwargs):
    for v in kwargs.keys():
        print('{}'.format(v), kwargs[v])
    print('----')


kwargs_func(name1='lee')
kwargs_func(name1='lee', name2='park', name3='cho')
  • 결과:
name1 lee
----
name1 lee
name2 park
name3 cho
----

혼합형 예)

def example(args_1, args_2, *args, **kwargs):
    print(args_1, args_2, args, kwargs)


example(10, 20, 'lee', 'kim', 'park', age1=20, age2=30, age3=40)
  • 결과:
    10 20 ('lee', 'kim', 'park') {'age1': 20, 'age2': 30, 'age3': 40}

    *args에는 1개든 10,000개든 "튜플"로 묶어서 반환
    **kwargs에는 1개든 10,000개든 "딕셔너리"로 묶어서 반환

6) 중첩함수

def nasted_func(num):
    def func_in_func(num):
        print(num)
    print("in func")
    func_in_func(num + 100)
    
nasted_func(100)
  • 결과:
    in func
    200

7) 람다식: 즉시 실행 함수(heap 초기화) -> 메모리 초기화

  • 장점: 메모리 절약, 가독성 향상, 코드 간결
  • 일반식
def mul_func(x, y):
    return x * y

print(mul_func(10, 50))
  • 결과: 500

  • 람다식

def lambda_mul_func(x, y): return x*y


print(lambda_mul_func(50, 50))
  • 결과: 2500
profile
🐹

0개의 댓글