関数02

4665 ワード

関数の戻り値

  • a.は、関数が呼び出し元の値に戻るb.returnキーワードの後の式の値c.は、関数呼び出し式の値である
  • pythonの各関数には戻り値があり、戻り値はreturnの後の値です.関数にreturnがない場合、関数の戻り値はNone
  • です.
  • 関数の呼び出し:a.先に関数呼び出しの位置に戻るb.実パラメトリック値(パラメータ伝達)c.で関数体d.を実行し、関数式e.に戻り、関数呼び出しの位置fに戻る.関数の関数体は呼び出し後のみ実行する.returnキーワードa.renturnの後の値を、関数呼び出し式b.終了関数3に返す.関数呼び出し式python各関数呼び出し式には
  • の値があります.
    def my_age(m):
        if m>18:
            return True
            print('  ')
        else:
            return  False
            print('   ')
    print(my_age(19))
    

    3.関数の終了a.関数体実行完了b.returnに遭遇
    def my_age():
            print('123')
            return 10
    print(my_age())
    

    練習:1つの関数を書いて、1+2+3+4を求めて、と10000を超えることができません
    def my_sum():
        sum=0
        i=1
        while True:
            sum+=i
            i += 1
            if sum+i>10000:
                return sum,i#        ,        
      :(9870, 141)
    

    アクティブドメイン
    1つの変数が使用できる範囲は、この変数の役割ドメイン(関数とクラスが変数に影響を与える役割ドメイン)です.
  • グローバル変数:宣言からファイルの終了まで
  • を使用できます.
  • ローカル変数:関数(クラス)で宣言される変数はローカル変数です.役割ドメインは宣言の開始から関数の終了までです.globalとnonlocal global:関数にグローバル変数フォーマットを作成する:global変数名変数名=値
  • abc='abc' #    
    bcd="bcd"
    def my_stu():
        abc=1#    ,               ,         
        print(abc)
    my_stu()
    print(bcd)
    

    2.nonloal関数で関数を宣言する場合、使用する必要があります.
    def fun11():
        a_11=10
        print('  ',a_11)
        def  fun12():
            nonlocal a_11
            a_11=100
            print('  :',a_11)
        fun12()
        print('  ',a_11)
    fun11()
      :   10
      : 100
       100
    

    pythonでは関数を宣言できます
    匿名関数:本質は関数であり、別の簡単な方法で宣言されます.
    匿名関数の宣言:関数名=lambdaパラメータリスト:戻り値------>結果は関数変数lamdbaです:匿名関数を宣言するキーワード
    my_sum2=lambda x,y:x+y
    print(my_sum2(10,20))
    

    変数としての関数
    関数を宣言することは、変数を宣言することです.関数名は変数として使用することができ、印刷することができ、値を付与することができ、タイプを表示することができ、関数のパラメータとして使用することができ、関数の戻り値として使用することができる.関数をパラメータとして使用
    def my_sum1(*numbers):
        sum1=0
        for item in numbers:
            sum1+=item
        return sum1
    def my_mul(*numbers):
        sum1=1
        for item in numbers:
            sum1*=item
        return sum1
    def operation(method,x,y):
        return method(x,y)
    result=operation(my_sum1(),10,50)
    print(result)
    
  • pythonの3つの演算子
  • 
    def my_sum1(*numbers):
        sum1=0
        for item in numbers:
            sum1+=item
        return sum1
    def my_mul(*numbers):
        sum1=1
        for item in numbers:
            sum1*=item
        return sum1
    def operation(method,x,y):
        return method(x,y)
    # 10+50  
    result1=operation(my_sum1,10,50)
    # 10*20
    result2=operation(my_mul,10,50)
    #  10    20
    result3=operation(lambda x,y:xy else y,10,50)
    print(result1)
      :60
    

    値1 if式else値2---->式がTrueであるかどうかを判断し、式全体の結果が値1であるかどうかを判断します.そうでなければ値2です.
    a=10 if 10>20 else 20
    

    3.関数を関数の戻り値とする
    def get_method(char):
        if char=='+':
            return lambda x,y:x+y
        elif char=='-':
            def func(x,y):
                return x-y
            return func
        elif char=='*':
            return lambda x,y:x*y
        elif char=='/':
            return lambda x,y:x/y
    #     =lambda x,y:x+y,     (7,8)
    print(get_method('+')(7,8))
    print(get_method('-')(7,8))
      :
    15
    -1
    

    さいきかんすう
    1.関数の関数体で、関数自体を呼び出す
    def my_1():
        print("==")
        my_1()
    my_1()
    

    理論的に循環できることは、再帰的にもできる.再帰関数aをどのように書くかa.臨界値を探す(ループから飛び出す--->return)b.関係を探す:現在の関数に対応する機能が実現したと仮定し、f(n)とf(n-1)の関係を見つけるc.f(n-1)と前に見つけた関係を使ってf(n)の機能の再帰に対する要求を実現する:使わなくてもいい
             :1+2+3...+n
    def my_sum2(n):
        # 1.     
        if n == 1:
            return 1
        # 2. my_sum2(n) my_sum2(n-1)   :
        """
        my_sum2(n): 1+2+3+...+n-1+n
        my_sum2(n-1): 1+2+3+...+n-1
          : my_sum2(n) = my_sum2(n-1)+n
        """
        # 3.  my_sum2(n-1)   my_sum2(n)   
        return my_sum2(n-1)+n
    
    print(my_sum2(5))
    """
    my_sum2(5)
    my_sum2(5) n = 5   return 1+2+3+4+5
    my_sum2(4) n = 4   return 1+2+3+4
    my_sum2(3) n = 3   return 1+2+3
    my_sum2(2) n = 2   return 1+2
    my_sum2(1) n = 1   return 1
    """
    
        2*4*6(n   )
    def mul(x):
        # 1.    
        if x == 2:
            return 2
    
        # 2.   
        """
        f(x) = f(x-2)*x
        """
        return mul(x-2)*x
    
    print(mul(6))
    
    def prin_star(n):
        # 1.    
        if n == 1:
            print('*')
            return
        prin_star(n - 1)
        print('*' * n)
    prin_star(3)
      :
    *
    **
    ***
    

    関数呼び出しのプロセスはスタックを押すプロセスです(関数を呼び出すたびに、関数呼び出しが終了すると自動的に破棄される関数内の宣言変数とパラメータを格納するために、システムは関数に空間を割り当てます).