Pythonでの関数呼び出し

16583 ワード

文書ディレクトリ
  • Pythonの関数呼び出し
  • 一、関数呼び出しの基礎:定義と戻り
  • 二、関数呼び出しにおけるパラメータ説明
  • 三、関数呼び出し簡略化:lambda式
  • 3.1 lambda式基礎
  • 3.2 lambda式適用シーン
  • 3.2.1判断付きlambda
  • 3.2.2列テーブルデータ辞書keyの値で
  • 並べ替え
    Pythonでの関数呼び出し
    一、関数呼び出しの基礎:定義と返却
    知識点:
  • def定義関数
  • 関数注釈の書き方、help()関数は定義関数の注釈
  • を見ることができる.
  • returnが返す複数の値は、タプルタイプ
  • である.
  • 呼び出し関数が取得する戻り値の格納方式
  • .
    def add(a, b):
        """
                  ,return        (  、  、  、    ),              
    
        :param a:
        :param b:
        :return:
        """
        return a + b, a*b, '     '
    
    
    #                    
    help(add)  #          
    c = add(1, 3)  # (4, 3, '     ')
    #             ,         key value
    value1, value2, string1 = add(1, 3)
    print(value1)  # 4
    print(type(c))  #          
    

    二、関数呼び出しにおけるパラメータの説明
    知識点:
  • 固定パラメータ:実パラメータの順序が形パラメータと一致する必要がないことが好ましい
  • デフォルトパラメータ:実パラメータが入力されない場合は、デフォルトが欠落している
  • 可変パラメータ(戻りメタグループタイプ):転送されたすべてのパラメータはargs変数によって収集され、転送パラメータの位置に基づいて1つのメタグループ(tuple)
  • にマージされます.
  • 可変パラメータ(辞書タイプを返す):
  • def func_paramTest01(a, b, string='      ', *args):
        """
        1、    :                
        2、    :       ,        
        :param a:
        :param b:
        :param string:
        :param args:
        :return:
        """
        return a, string
    
    
    c = func_paramTest01(b=2, string='    ', a=1)  # (1, '    ')
    d = func_paramTest01(b=2, a=1)  # (1, '      ')
    
    def func_paramTest02(*args):
        """
        3、    :          args     ,                  (tuple),args     ,         。
        :param args:
        :return:
        """
        return args
    
    
    e = func_paramTest02()  # ()
    print(type(e))  # 
    f = func_paramTest02(0.75, '  ', {'name': '  '})  # (0.75, '  ', {'name': '  '})
    print(f)
    
    def func_paramTest03(**kwargs):
        """
        4、    (    ):kwargs      
        :param kwargs:
        :return:
        """
        return kwargs
    
    
    g = func_paramTest03()  # ()
    print(type(g))  # 
    h = func_paramTest03(name='python', age=20)  # {'name': 'python', 'age': 20}
    

    三、関数呼び出しの簡略化:lambda式
    1つの関数に1つの戻り値があり、1つの文コードしかない場合、lambdaはlambda( : )( )を簡略化することができる.
    3.1 lambda式の基礎
    #   
    print((lambda: 100)())  # 100
    #     
    print((lambda a: a)('hello world'))  # hello world
    #     
    print((lambda a, b: a+b)(1, 2))  # 3
    #     
    print((lambda a, b, c=100: a + b + c)(10, 20))  # 130
    #     (    )
    print((lambda *args: args)(10, 20, 30))  # (10, 20, 30),        
    #     (    )
    print((lambda **kwargs: kwargs)(name='python', age=20))  # {'name': 'python', 'age': 20},        
    

    3.2 lambda式適用シーン
    3.2.1判断付きlambda
    print((lambda a, b: a if a > b else b)(1000, 500))  # 1000
    

    3.2.2列表データを辞書keyの値で並べ替える
    students = [
          {'name': 'TOM', 'age': 20},
          {'name': 'ROSE', 'age': 19},
          {'name': 'Jack', 'age': 22}
    ]
    #  name      
    students.sort(key=lambda x: x['name'])
    print(students)  # [{'name': 'Jack', 'age': 22}, {'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}]
    #  name      
    students.sort(key=lambda x: x['name'], reverse=True)
    print(students)
    #  age      
    students.sort(key=lambda x: x['age'])
    print(students)
    
    #     
    # [{'name': 'Jack', 'age': 22}, {'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}]
    # [{'name': 'TOM', 'age': 20}, {'name': 'ROSE', 'age': 19}, {'name': 'Jack', 'age': 22}]
    # [{'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}, {'name': 'Jack', 'age': 22}]