Python関数



n.関数


関数とは、1つの包装紙に入れて、繰り返し使用できるようにすることです.
そのため、一つの論理の効率が低下(?)繰り返し使用することなく、関数として管理できます.
Pythonに関数を知らせるためにdefというキーワードを使用してください.

構文


defは、関数を作成する際に使用される保持語であり、関数名は、関数を作成するユーザが任意に作成することができる.関数名の後ろのカッコのパラメータは、関数に渡される入力値を受け入れる変数です.このように関数を定義し、if、while、for文などの関数を実行する文を入力します.
def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...

  • 一般関数
    -この関数の名前(関数名)はaddで、2つの値を入力し、アップルの値を2つの入力値の合計にします.
  • def add(a, b): 
        return a + b
    パラメータ
  • のない関数
    -say()のようにカッコ内に値を入力するべきではありません.この関数は、値は入力されていませんが、Hiという文字列を返します.a=say()のように記述すると、aにHi文字列が挿入されます.
  • def say():
    	return 'Hi'
        
    a = say()
    print(a)
    
    >Hi
        
    結果値(戻り)のない関数

  • -結果値のない関数名を「関数名」とします(入力パラメータ1、入力パラメータ2、...)一緒に使う.
  • def add(a, b): 
         print("{0}, {1}의 합은 {2}입니다.".format(a, b, a+b))
    
    add(1,2)
    > 1, 2의 합은 3입니다.
    「3 4の和は7」と言われるかもしれませんなぜりんごの値が欠けているのか不思議に思うかもしれません.これも初心者が困っているところですが、print文は関数の1つの構成部分である<実行する文>にすぎません.もちろんりんごの値段はありません.デフォルト値はreturnコマンドのみを返します.
    確認させていただきます.返される値をa変数に代入して出力すると、欠落した値があるかどうかを知ることができます.
    a = add(3, 4)
    print(a)
    None
  • 入力値も欠落値もない関数
    -引数も文を返す関数もありません.
    つまり、値と結果値が入力されていない関数は、次のように使用されます.
  • def say():
    	print('Hi')
    say()
    > Hi
  • *args
    -agrumentsの略です.何個のパラメータを受信するか分からない場合は、それを使用します.argsは関数のパラメータをtupleとして保存しています.
    パラメータを受信しargsで可変長パラメータを受信します.
    伝達されたパラメータはlistのように関数で処理できます.
  • 
    def 함수이름(*매개변수): 
        <수행할 문장>
        ...
        
    def foo(*args):
        for a in args:
            print(a)
    foo(1,2)
    > 1
    > 2
    foo(1,2,3)
    > 1
    > 2
    > 3
  • **kwargs
    -関数は名前付きパラメータの処理に使用する必要があります.
    関数のパラメータはバイナリ形式で格納されます.
  • def bar(**kwargs):
        for a in kwargs:
            print(a, kwargs[a])  
    
    bar(first_name='J Builder', last_name='Awesome')
    > first_name J Builder
    > last_name Awesome
  • *args、*kwargsとともに
  • を使用
    def save_ranking(*args, **kwargs):
        print(args)
        print(kwargs)
    save_ranking('ming', 'alice', 'tom', fourth='wilson', fifth='roy')
    
    > ('ming', 'alice', 'tom')
    > {'fourth': 'wilson', 'fifth': 'roy'}
    *argsは*kwargsの後では使用できません.
    def save_ranking(**kwargs, *args):
        ...
  • 関数には、常に結果値が1つしかありません.
    -結果値returnが2つの場合、エラーが発生する可能性があります.
    最終的には起こらない.理由は二つじゃなくて一つadd and mul関数の結リンゴ値a+bとabはtuple値(a+b,ab)を返す.
  • def add_and_mul(a,b): 
        return a+b, a*b
    
    result = add_and_mul(3,4)
    
    print(result)
    >(7, 12)
    2つのreturn値としてtuple値を取得したい場合はresult1, result2 = add_and_mul(3, 4)コール:
    result 1,result 2=(7,12),result 1は7,result 2は12となる.
  • lambda関数
  • Ramda式は関数の記述を簡略化することができ,通常は他の関数の引数として用いられる.
    Ramda関数は、returnキーを使用せずに結果セクションを自動的に返します.

    defやlambdaなどの関数を比較してみましょう。 def関数。 def func(a): return a+1 Lambda関数。 func = lambda a: a+1