파이썬 개발[제11편] 함수

9785 단어

함수.


함수란 무엇입니까?
함수는 반복적으로 실행할 수 있는 문장 블록으로 함수를 반복적으로 호출하고 실행할 수 있는 프로세스 프로그래밍을 위한 최소 단위이다.
함수 역할:
  • 함수는 문장 블록을 봉인하여 코드의 중용성을 높이고 사용자 등급의 함수를 정의하며 코드의 가독성과 유지보수성을 향상시킨다.

  • 함수의 구문:
    def    (    ):
            

    역할: 함수를 만들고 문장 블록을 포장하여 함수 이름으로 연결하여 호출합니다
    설명: 함수 이름의 명명 규칙은 변수 이름의 명명 규칙과 같습니다(표식자여야 함). 함수 이름은 변수로 함수를 귀속시키는 데 사용됩니다.함수는 자신의 명명 공간이 있기 때문에 함수 외부는 함수 내부의 변수에 접근할 수 없고 함수 내부는 함수 외부의 변수에 접근할 수 있지만 외부 변수에 값을 부여할 수 없다.문장 블록 부분은 공백일 수 없습니다.공백일 경우pass문장을 기입해야 합니다
    함수에 매개 변수를 입력할 필요가 없으면, 인삼 목록을 비울 수 있습니다.
    예:
    #      def       
     def say_hello():
        print('hello world')
        print('hello   ')

    함수 호출


    구문:
       (        )

    설명: 함수 호출은 표현식입니다. 함수 내부에return 문장이 없으면 함수 실행이 끝난 후 None 대상의 인용을 되돌려줍니다.
    예:
    def say_hello():
        print("hello world")
        print("hello   ")
    #       
    say_hello()
    #       
    say_hello()
    #      def      
    #                  
    def say_hello():
        a = 100
        print("  a :",a)
    say_hello()
    #        myadd  
    def myadd(a,b):
        print(a+b)
    myadd(1,2)
    myadd([1,2,3],[4,5,6])

    return 문


    구문:
    return [   ]
      :[]           

    역할: 함수에서 현재 함수의 실행을 끝내고 이 함수를 호출한 곳으로 되돌려주며 대상의 인용 관계를 되돌려줍니다
    설명:
  • return 문장 뒤의 표현식은 생략할 수 있으며, 생략하면 return None
  • 에 해당한다
  • 함수 내부에return 문장이 없으면 이 함수는 마지막 문장을 실행한 후 None
  • 으로 돌아갑니다
    연습:
    1. 함수 mymax를 써서 세 개의 최대 값을 되돌려줍니다
    예: def mymax(a, b, c):
    ​ ……….
    ​ print(mymax(1,2,3))#3
    ​ print(mymax(“ABC”,“abc”,“123”))#abc
    #    
    def mymax(a,b,c):
        return max(a,b,c)
    print(mymax(1,2,3))
    print(mymax("ABC","abc","123"))
    #    
    def mymax(a,b,c):
        zuida = a
        if b > zuida:
            zuida = b
        if c > zuida:
            zuida = c
        return zuida
    print(mymax(1,2,3))
    print(mymax("ABC","abc","123"))

    함수의 전참


    작용:데이터를 함수에

    함수의 형삼


    역할: 함수 호출 전송된 데이터 수신

    python 함수의 매개 변수 전달


    전송 방법:
  • 위치 전삼
  • 서열 참조
  • 키워드 참조
  • 사전 키워드 참조
  • 위치 전참

        (  )          (  )                

    예:
    #          
    def myfun(a, b, c):
        '''           '''
        print('a   :', a)
        print('b   :', b)
        print('c   :', c)
    
    myfun(1, 2, 3)
    myfun(4, 5, 6)
    myfun("ABC", [1,2,3], (44,55,66))
    

    설명:
                    
    
                   

    서열 참조

                  , *(  )      
                 

    예:
    #           
    def myfun(a, b, c):
        '''           '''
        print('a   :', a)
        print('b   :', b)
        print('c   :', c)
    
    L = [11, 22, 33]
    
    # myfun(L[0], L[1], L[2])
    myfun(*L)
    
    # myfun(L)

    설명:

    키워드 참조


    예:
    #            
    def myfun(a, b, c):
        '''           '''
        print('a   :', a)
        print('b   :', b)
        print('c   :', c)
    
    
    myfun(c=33, b=22, a=11)
    myfun(b=222, c=333, a=111)
    

    설명:
               
             

    사전 키워드 참조

                  ,    **(   )               

    예:
    #              
    def myfun(a, b, c):
        '''           '''
        print('a   :', a)
        print('b   :', b)
        print('c   :', c)
    
    d = {'a':100, 'c':300, 'b':200}
    
    # myfun(a=d['a'], c=d['c'], b=d['b'])
    myfun(**d)  #          
    
    # myfun(d)  #   

    설명:
                 
                        
                

    함수의 종합 전참

                                     
                    

    예:
    def myfun(a, b, c):
            pass
        myfun(100, *[200, 300])
        myfun(100, *"BC")
        myfun(*"AB", 300)
        myfun(*[100], 200, *[300])
        myfun(100, c=300,b=200)
        myfun(a=100, 200, c=300)  #    
    
        myfun(100, **{'c':300, 'b':200})
        myfun(100, **{'c':300}, b=200)
        myfun(100, b=200, **{'c':300})

    함수의 기본 매개변수


    구문:
    def    (   1=    1,   2=    2,   3=    3,.....)

    역할:
                     

    예:
    #                 
    def info(name, age=1, address="  "):
        print(name, '  ', age,' ,    :',
              address)
    
    info("   ", 35, "      ")
    info("Tarena", 15)
    info("  ")
    # info()  #   
    

    설명:
                  ,           ,                
           0 、     ,          

    예:
    def fn(a,b=10,c):  #  
        pass
    def fn(a=0,b=None,c=False): #  
        pass

    함수의 가변 실참과 가변 실참의 전달


    예:
    #                         
    #                    
    L = [1, 2, 3]
    def f1(L):
        L = [4, 5, 6]  #                      
        print(L)  # [4, 5, 6]
    
    f1(L)
    print(L)  # [1, 2, 3]
    L = [1, 2, 3]
    def f1(L):
        # L = [4, 5, 6]  #                      
        L.append("ABC")
        print(L)  # [1, 2, 3, "ABC"]
    
    f1(L)
    print(L)  # [1, 2, 3, "ABC"]

    설명:
                     ,                   (  ,  ,  ...)

    면접 문제:
    #            ?   ?
    L = [1,2]
    def fn(a,lst=[])
        lst.append(a)
        print(lst)
    fn(3,L)  #[1,2,3]
    fn(4,L)  #[1,2,3,4]
    #####################
    fn(5)   #[5]
    fn(6)   #[5,6]
    fn(7)   #[5,6,7]

    함수형 참조의 정의 방식

  • 위치형삼
  • 성호원조형삼
  • 명명 키워드 참조
  • 쌍성호 사전형삼
  • 위치형삼


    구문:
    def    (    1,    2,....):
       

    성호 원조형삼


    구문:
    def    (*     ):
           

    역할:
             

    설명:
              'args'
    *             

    예:
    #            
    def func(*args):
        print("      :", len(args))
        print("args=", args)
    
    func()  #   
    func(1,2,3,4)
    func(1, 2, 3, 4, 5, 6, 7, 8)
    s = "ABCDE"
    func(*s)  #    func('A', 'B', ....)
    func(a=100, b=200)  #   

    이름 키워드 참조


    구문:
    def    (*,       1,       2,....):
           
     
    def    (*args,       1,       2,....):
           

    역할:
                                 

    예:
    #             
    def func(a, b, *, c, d):
        print(a, b, c, d)
    
    # func(1, 2, 3, 4)  #     
    func(1, 2, c=30, d=40)
    func(a=10, b=20, c=30, d=40)
    func(1, 2, **{'d':400, 'c':300})
    

    쌍성호


    구문:
    def    (**     ):
           

    역할:
              

    예:
    #             
    def func(**kwargs):
        print("         :", len(kwargs))
        print('kwargs=', kwargs)
    
    func(name="    ", age=35, address="   ")
    
    def func(*,a, b, **kwargs):
        print("         :", len(kwargs))
        print('kwargs=', kwargs)
    
    func(a=1, b=2, c=3, d=4)

    설명:
              :'kwargs'
                   

    함수에 대한 참조 설명:

  • 위치형삼, 부족한 매개 변수, 성호 원조형삼, 쌍성호 사전형삼을 혼합하여 사용할 수 있음
  • 함수형이 왼쪽에서 오른쪽으로 정의된 순서는 다음과 같다.
  • 위치형삼
  • 성호원조형삼
  • 명명 키워드 참조
  • 쌍성호 사전형삼
  • 예:
    def fn(a, b, *args, c, **kwargs):
        pass
    fn(1, 2, 3, 4, c=30, d=40, e=50)

    함수의 부정확한 길이 매개 변수

  • 성호원조형삼
  • 쌍성호 사전형삼
  • 부정확한 길이 매개 변수로 임의의 전삼을 수신할 수 있다
    예:
    def fn(*args,**kwargs):
        print(*args,**kwargs)

    글로벌 및 로컬 변수


    국부 변수

  • 함수 내부에 정의된 변수를 국부 변수라고 한다(함수의 형참도 국부 변수)
  • 국부 변수는 함수 내부에서만 사용할 수 있음
  • 국부 변수는 함수 호출 시 만들 수 있으며 함수 호출 후 자동으로 삭제
  • 전역 변수

  • 함수 외부에 정의된 변수를 전역 변수
  • 라고 한다
  • 전역 변수는 모든 함수에 직접 접근할 수 있지만 함수 내부에서 직접 복사할 수 없음
  • 설명:
                       

    함수 변수


    함수 이름은 변수입니다. 함수를 만들 때 함수를 연결합니다.
    예:
    #            ,              
    def f1():
        print("f1     !")
    
    f2 = f1  #    ,   f2 = f1()  <<===   
    
    f2()  #        ?
    f1()
    def f1():
        print("f1     !")
    
    def f2():
        print("f2     !")
    
    f1, f2 = f2, f1  #               
    
    f1()  #      ?

    설명:
    하나의 함수는 다른 함수의 실참 전달에 작용할 수 있고, 다른 함수의 형삼 변수는 실참 함수를 귀속시킬 수 있다
    함수는 다른 함수의 반환값으로 할 수 있다
    예:
    def f1():
        print("f1")
    
    def f2():
        print("f2")
    
    def get_fx(n):
        if n == 1:
            return f1
        elif n == 2:
            return f2
    fx = get_fx(1)
    fx()  #   f1
    fx = get_fx(2)
    fx()  #      ?

    함수의 중첩 정의


    함수 플러그인 정의는 한 함수에서 def 문장으로 다른 함수를 만드는 상황을 가리킨다
    예:
    #               ,        
    def fn_outer():
        print("fn_outer   ")
    
        def fn_inner():
            print("fn_inner   ")
    
        fn_inner()
        fn_inner()
        fn_inner()
    
        print("fn_outer    ")
    
    fn_outer()
    # fn_inner()  #     

    좋은 웹페이지 즐겨찾기