Python基礎文法8


9.Function(関数)

  • は、生産性を向上させるための機能です.
  • def function (param1, param2, ... ) :
  • 関数を使用する目的は、再使用です.
    同じコードを2回以上使用した場合の関数です.
  • 機能内で(ローカル)タスクを実行し、世界に戻ります.
  • 9.1作成機能

    #예시
    def add(a, b): ## def 지정 function 이름 "add" 생성 param. a, b 생성
        c = a + b  ## statement 생성
        return c   ## global에 작업
        print(c)   ## 이경우 global 엔 영향이 없다.
    
    # function 실행하기
    add(3, 5)
    
    # 사칙연산
    def add(a, b):
        return(a+b)
    
    def sub(a, b):
        return a - b
    
    def mul(a, b):
        c = 0
        while b > 0:
            c = c + a
            b = b - 1
        return c
    
    def dev(a, b):
        if b == 0:
            return 0  ## 0으로 나눌경우 error가 뜬다. 
        else:         ##따라서 function을 만들때 대부분 숫자 나누기 0은 0으로 표시되게한다
            return a / b
    
    a = 10
    b = 0
    
    print("Add", add(a, b))
    print("Sub", sub(a, b))
    print("Mul", mul(a, b))
    print("Dev", dev(a, b))

    9.2豊富な機能


    9.2.1 Paramator and Returnがある場合

    def add (a, b):
        return a + b

    9.2.2 Paramatorがなく収益がある場合

    def get_data():
        data = pd.read_csv("test.csv")  ## 특정 작업이 지정되어 있을 경우 parameter 가 필요 없다.
        return data                     ## 이경우 function 을 사용하면 데이터만 리턴한다.

    9.2.3アマチュアがいて、報われないとき

    a = 3
    b = 4
    c = 0
    def add(a, b):
        c = a + b  ## function안(local) 에서만 작동한다
        print(c)   ## return 이 아닌 print로 값만 출력한다.
    
    add(3, 4)
    print(c)       ## global에서는 변하지 않는다.
    
    def print_name(name):
        print(name)  ## name만 프린트 하고 더이상 작업이 없을때
    
    def save_data(path, data):
        dta.to_csv(path)  ## 특정 작업을 시행하고 끝낼경우
    
    ### 9.2.4 parameter 와 return 이 없을때
    
    def say_hi():
        print("Hi") ## 단순한 업무를 진행할 경우
    
    say_hi()
    
    def save_txt():
        with open("test.txt", 'w') as f:
            f.write(txt)  ## 특정 작업을 실행하고 끝인경우
                          ## global엔 변화없음

    9.3関数に入力したパラメータの個数が分からない場合

    def add_many(*params): ## *를 붙임으로 parameter의 계수가 여러개임을 입력한다.
        total = 0
        for num in params:
            total += num
        return total
    
    add_many(1, 2, 3, 4, 5)

    9.4パラメータの作成障害

  • 障害で指定されたパラメータをキーワードパラメータと呼びます.
  • def add_as_many(*numbers, b=100):
        total = 0
        for num in numbers:
            total = total + num
        total = total + b
    
        return total
    
    add_as_many(1, 2, 3, 4, 5, 6) ## *numbers에 1~6입력 b = 100 defult
    
    add_as_many(1, 2, 3, 4, 5, 6, b=500) ## b에 새로운 값을 넣을 수 있다.

    9.5パラメータ:LocalとGlobal

  • パラメータにはスレッドと寿命があります.
  • # 함수 parameter와 Global의 variable의 이름이 같을 경우
    def change_name(name):
        name = "Doh"   ##local에서 이름을 바꾼다
        return name
    
    name = "Kim"
    name = change_name(name)  ## name을 update한다.
    
    print(name)
    
    # 함수 parameter와 Global의 variable의 이름이 같을 경우
    def change_name(name):
        name = "Doh"   ##local에서 이름을 바꾼다
        print("Name is the function: %s" % name)
    
    name = "Kim"
    name = change_name(name) 
    
    print(name)  ## Local 에서만 바뀌었고 Global에선 바뀌지 않는다.

    10. Lambda Function


    Lambda Expresion
  • 単純な関数、すなわち1行の関数が使用可能である場合に使用される.
  • コマンドなしで使用できます.
  • 主に
  • 複文に用いられる.
  • lambda param1, param2, ... : statement
    def add(a,b):
        return a + b
    
    # In lambda
    f = lambda a, b : a+b
    
    print(add(1, 3))
    print(f(1, 3))