ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11.Function
    공부합시다!/python 2023. 2. 3. 00:15
    728x90

    드디어 무시무시한 함수로 들어가네요!

    Code의 편리한 재사용을 위해서 사용하는 것이 함수입니다.

    인자값만 바꾸면 그때 그때 재사용을 할 수 있지요!
    핵심을 잘 기억하세요!

    # 함수식 및 람다(lambda)
    
    # 함수 정의 방법
    # def 함수명(parameter):
    # code
    
    # 함수 호출
    # 함수명
    
    # EX-1 return 값 없음
    def hello(test):
      print('Hello',test)
    hello('Python')
    hello(7777)
    
    # EX-2 return 값 있음
    def hello_return(world):
        val = 'Hello ' + str(world)
        return val
      
    str1 = hello_return('Python!!!!!!!!')
    print(str1)
    
    # EX-3 다중 return
    def func_mul(x):
      y1 = x * 100
      y2 = x * 200
      y3 = x * 300
      return y1, y2, y3
    
    val1, val2, val3 = func_mul(100)
    print(val1, val2, val3)
    
    
    # EX-4 
    # args(가변형의 매개변수 사용가능, 튜플), *kwagr(딕셔너리 형태)
    
    def args_func(*args):
      print(args)
    
    args_func('Kim')
    args_func('Kim', 'Park')
    args_func('Kim', 'Park', 'Lee')
    
    
    def args_func1(*args):
      for t in args:
        print(t)
    
    args_func1('Kim')
    args_func1('Kim', 'Park')
    args_func1('Kim', 'Park', 'Lee')
    
    # index 표시
    def args_func(*args):
      for i,v in enumerate(args):
        print(i, v)
    
    args_func('Kim')
    args_func('Kim', 'Park')
    args_func('Kim', 'Park', 'Lee')
    
    # kwargs
    def kwargs_func(**kwargs):
      print(kwargs)
    kwargs_func(name1='Kim')
    kwargs_func(name1='Kim', name2='Park')
    kwargs_func(name1='Kim', name2='Park', name3='Lee')
    
    # kwagrs-1
    def kwargs1_func(**kwargs):
      for k,v in kwargs.items():
        print(k, v)
    
    kwargs1_func(name1='Kim')
    kwargs1_func(name1='Kim', name2='Park')
    kwargs1_func(name1='Kim', name2='Park', name3='Lee')
    
    # 전체 혼합
    def exmaple_mul(arg1, arg2, *args, **kwargs):
      print(arg1, arg2, args, kwargs)
    
    exmaple_mul(10, 20)
    exmaple_mul(10, 20, 'park', 'kim', age1=24, age2=25)
    
    # 중첩 함수 (함수내 함수)
    
    def nested_func(num):
      def func_in_func(num):
        print('>>>',num)
      print('in func')
      func_in_func(num + 10000)
    
    nested_func(10000)
    
    # 예제 - 6 
    def func_mul(x):
      y1 = x * 100
      y2 = x * 200
      y3 = x * 300
      return y1, y2, y3
    
    val1, val2, val3 = func_mul(100)
    print(val1, val2, val3)
    
    def func1_mul(z : int) -> list:
      y11 = z * 100
      y12 = z * 200
      y13 = z * 300
      return [y11, y12, y13]
    
    print(func1_mul(5))
    
    # 람다식
    # 람다식 : 메모리 절약, 가독성 향상, 코드 간결
    # 함수는 객체 생성 -> 리소스(메모리 ) 할당
    # 람다는 즉시 실행(heap 초기화) -> 메모리 초기화
    
    # 일반적 함수 -> 변수 할당
    def mul_1(num : int) -> int:
      return num * 10
    
    var_func = mul_1
    print(var_func)
    print(type(var_func))
    
    
    lambda_mul_2 = lambda num : num * 10
    
    print('>>>', lambda_mul_2(10))
    
    ### 함수내 함수(람다식 사용 가능)
    def func_final(x, y, func):
      print(x * y * func(10))
    
    func_final(10, 10, lambda_mul_2)
    
    # 1000이라는 값을 곱하려면 넣으려면
    print(func_final(10, 10, lambda x :x *1000))

    728x90

    '공부합시다! > python' 카테고리의 다른 글

    13. DB: DB data 다루기 - 1  (0) 2023.02.07
    12. DB: database 및 table 다루기  (0) 2023.02.06
    10.for, while: 흐름제어  (0) 2023.02.02
    9.if 조건문: 흐름제어  (0) 2023.02.01
    8.Set  (0) 2023.01.31
Designed by Tistory.