day10 function

5948 ワード

1.関数とは
  • 関数は、ある特定の機能を実現するコードセグメントのパッケージ
  • である.
    2関数の分類
  • 内蔵関数(システム関数):pythonが実装した関数で、プログラマが直接(print()/input()/max()/len()...)を使用します.システムで作られた機器
  • に相当する
  • カスタム関数:プログラマが自分で定義した関数で、自分で作った機械
  • に相当する.
    3関数の定義(宣言)
    a.  :
    def    (    ):
           
    
    b.  :
    def      --         ,    
           --   :    ,    
             --   :     (     ,       );    :      ,        (_)  ;               
    ()       --     
    
          --   1,  2,  3,...(      ,           )
             ==    1,   2,   3,...
             --                     
    :        --     
           --  def          ;
                           (      )              
    

    初心者が関数を宣言するには:
    ステップ1:関数の機能の決定
    ステップ2:機能に基づいて関数名を決定する
    ステップ3:パラメータの決定:関数の機能を実現するためにいくつかのパラメータ(0でもよい)が必要かどうかを決定し、必要であれば、いくつかのパラメータが必要かどうかを決定します.
    ステップ4:関数の機能を実現する(関数体重のコードセグメントに基づいて)
    ステップ5:関数の戻り値を決定します(一時的に必要ありません)
    関数を書いて、機能は2つの数の和を計算します
    def sum_2(num1,num2):
        """
               :      
        :param num1:     ,int
        :param num2: int
        :return:     ,None
        """
        print(num1+num2)
    

    関数を書いて、機能は123*n積を求めます
    def product(n):
        """
         n!
        :param n: int
        :return: n!
        """
        product1 = 1
        for a in range(1,n+1):
            product1 *= a
        print(product1)
    
    product(10)
    

    10個の*を印刷する機能を持つ関数を書きます.
    def print_star():
        """
          10 *
        :return:
        """
        print('*'*10)
    

    4.関数体は関数を定義する時、実行しない;関数を呼び出すと、関数ボディ(ポイント)が実行されます.
    5.関数呼び出し--マシンの使用
    a.  
       (    )
    b.  :
          --                    
    ()       --     
          --       ,           .
              --  1, 2, 3,...
    """
    sum_2(10,30)
    product(10)
    print_star()
    

    1.関数の呼び出しプロセス(非常に重要)
  • 関数定義時には関数体が実行する、関数呼び出し時には関数体
  • が実行される.
    ≪関数の呼び出しプロセス|Function Call Procedure|ldap≫:関数名(実パラメータ・リスト)
    ステップ1:関数定義の場所に戻る
    ステップ2:実パラメータでパラメータに値を割り当てる(パラメータ伝達:各パラメータに値があることを保証する)
    ステップ3:関数ボディの実行
    ステップ4:関数ボディを実行し、関数呼び出しの位置に戻り、その後実行します.
    2.関数のパラメータ
  • a.パラメータは、実パラメータの書き方によって位置パラメータとキーワードパラメータ
  • に分ける.
  • 位置パラメータ(共通):関数を呼び出すとき、実パラメータの位置と形パラメータが1つ1つ対応し、各形パラメータに
  • の値があることを保証します.
  • キーワードパラメータ:実パラメータリストは、パラメータ名1=値1、パラメータ名2=値2、...に表示されます.
  • 注記:パラメータの順序は、定義時のパラメータの順序とは異なる
  • であってもよい.
  • 注意:位置パラメータとキーワードパラメータは混在可能である(ただし、位置パラメータはキーワードパラメータの前にある必要がある)
  • .
    キーワードパラメータ(順序を狂わせる)
    def func1(a,b,c):
        print(a,b,c)
    
    func1(a=10,c=30,b=20)
    

    パラメータのデフォルト
  • 関数を定義する場合、関数のパラメータはデフォルト値を設定できます.
  • 注意:a.デフォルト値を設定場合、一部のパラメータにはデフォルト値があり、一部のパラメータにはデフォルト値がない.デフォルト値のないパラメータは、デフォルト値のあるパラメータの前にある必要があります.
  • b.デフォルト値のパラメータがあり、呼び出すときにパラメータを渡さなくてもいい.デフォルト値のないパラメータは参照する必要があります.パラメータを渡す場合、デフォルト値のあるパラメータをスキップする場合は、キーワードパラメータを使用してパラメータを渡す必要があります:キーワードパラメータ=新しい値
  • def func2(a,b=20,c=30):
        print(a,b,c)
    func2(10,c=200)
    
  • パラメータタイプ説明:パラメータにデフォルト値を設定するほか、パラメータタイプ
  • を指定することもできます.
  • 方式1:パラメータにデフォルト値を設定し、デフォルト値はどんなタイプで、パラメータはどんなタイプですか.
  • 方式2:直接説明タイプパラメータ名:タイプ名
  • def func3(a,b,nums:list):
        nums.append('aaa')
        print(a,b,nums)
    
    func3(22,22,[12])
    

    関数を書きます.関数の機能はリストで指定した要素の個数を統計し、countの機能に似ています.
    def func4(list1:list,item):
        sum1 = 0
        for a in list1:
            if a == item:
                sum1+=1
        print(sum1)
    
    func4([1,2,3,4,5,6,1,2,1],1)
    

    不定長関数:関数を呼び出すと、複数のパラメータ値(不定)を渡すことができます.
  • a.関数を定義するとき、パラメータの前に*を付けると、パラメータを元祖にしながら、複数の位置パラメータの値
  • を格納することができます.
  • の1つの関数には不定長と定長のパラメータが同時に存在する、不定長のパラメータは定長のパラメータの後ろに置く.
  • 不定長パラメータの後に、デフォルト値が付与されたパラメータまたはキーワードを使用して
  • を参照する.
  • b.関数を定義するとき、パラメータの前に**を付けると、パラメータを辞書に変えながら、複数のキーワードパラメータの値を格納することができます.キーワードは
  • と任意に命名できます.
  • 注意:原則として1つの関数のパラメータには、定長パラメータもあれば、不定長パラメータ(バンド、および*付き)
  • もある
  • 注意:2つの不定長パラメータが同時に存在し、位置パラメータでパラメータを伝達することも、キーワードパラメータでパラメータを伝達することも、すべて使用することもできる.
  • は2つのバンド*が存在しない、および2つのバンド**の
  • が存在しない
        print(args,kwargs)
    
    func_(1,2,3,4,a=1,b=2)
    

    関数を書いて、機能は複数の数の和を求めます
            sum1 , sum1(10) == 10;sum1(1,2) ==3
    def sum2(*num):
        print(sum(num))
    
    sum2(1,2,3,4,5)
    
    def fun2(a,*num,c):
        print(num,a,c)
    
    fun2(12,5,12,0,c=9)
    

    練習、1つの関数を書いて、複数の数の和を求めて、関数を呼び出すことを要求する時、位置の関数を使ってパラメータを伝達することができて、キーワードでパラメータを伝達することができます
    def sum_2(*args,**kwargs):
        sum2 = 0
        for item1 in args:
            sum2 += item1
        for key in kwargs:
            sum2 += kwargs[key]
        print(sum2)
    
    sum_2(1,2,a=100,b=200)
    

    =================================================
    1.関数の戻り値とは
  • の戻り値は、関数体で生成するデータを関数外
  • に伝達する役割を果たす.
  • 戻り値は関数呼び出し式の値であり、returnキーワードの後の値
  • である.
  • 注意:関数呼び出し式-関数を呼び出す文:その結果、関数の戻り値です.
  • 関数式を呼び出すことにより、関数の戻り値
  • を取得する.

    2.returnキーワード
  • returnは関数体にのみ表示されます:
  • 関数体を実行するとき、returnに遭遇し、関数は直接終了する.returnの後の値を関数値として
  • に返す.
  • returnに遭遇しない場合、関数の戻り値はNone
  • です.
    3.関数の呼び出しプロセス(完全版)が重要
    1.関数定義の場所に戻る
    2.実パラメータでパラメータに値を割り当てる---パラメータを渡す(各パラメータに値があることを保証する)
    3.実行関数体
    4.関数体を実行し、戻り値を決定する
    --returnに遭遇していない関数体のすべての文を実行し、戻り値がNoneであることを決定します.
    --実行中にreturnが発生し、戻り値はreturnの後の値であり、returnの後に値がない場合はNone
    5.関数呼び出しの位置に戻る、その後に実行する.(関数呼び出し式の値が関数の戻り値である場合)
    def func1(n):
        print(n)
    a = func1(10)
    print(a)
    

    4.関数が値を返すのはいつですか
  • 初心者のアドバイス:関数の機能を実現し、新しいデータを生成すれば、データを戻り値で返すことができる.

  • pythonの1つの関数には複数の戻り値があります.return後に複数の値をカンマで区切ります.
    2つの数の和を求める関数を書きます.
    def yt_sum(n1, n2):
        return n1+n2
    """
    score1 = 10
    score2 = 20
    print(yt_sum(score1, score2))
    total = yt_sum(score1, score2)
    person = {'name': '  ', 'scores': total}
    """
    print([1, 2, 3].count(1))
    list1 = [1, 2, 3]
    print('===:', list1.append(4))   
    

    pythonの1つの関数には複数の戻り値があります.return後に複数の値をカンマで区切ります
    def func2():
        return 10, 20
    
    x, y = func2()     # x, y = 10, 20
    print(x)