[TIL]Python関数


n.関数


パラメータ:入力した値として関数に渡される変数を受信します.
引数:関数の呼び出し時に渡される入力値
def add(a,b): #a,b는 매개변수
    return a+b

print(add(3,4)) #3,4는 인수

関数の形状


関数の形式は4つのタイプに分けられます.

  • 一般関数
    入力値と結果値を持つ関数

  • 値が入力されていない関数
  • def say(): 
        return 'Hi'
    a = say()
    print(a)
    'Hi'
  • 結果無値関数
  • def add(a, b): 
        print("%d, %d의 합은 %d입니다." % (a, b, a+b))
    add(3, 4)
    '3, 4의 합은 7입니다.'
    print文は、関数の構成要素である「実行する文」にすぎません.
    結果値はreturnコマンドとしてのみ返されるため、結果値はありません.
    a = add(3, 4)
    print(a)
    None
    結果値がない場合に変数に代入すると、値が偽りであるNoneを返します.
    値と結果値が入力されていない関数
  • def say(): 
        print('Hi')
    say()
    'Hi'

    入力値が何個あるか分からない場合に、すべての入力値を加算する関数です。

    def add_many(*args): 
        result = 0 
        for i in args: 
            result = result + i 
        return result
    パラメータ名に*を付けると、すべての入力値がtupleになります.
    result = add_many(1,2,3)
    print(result)
    #6
    result = add_many(1,2,3,4,5,6,7,8,9,10)
    print(result)
    #55
    これにより、入力値の個数にかかわらず使用できます.
    パラメータを追加して関数に条件文を作成することもできます.
    def add_mul(choice, *args): 
        if choice == "add": 
            result = 0 
            for i in args: 
                result = result + i 
        elif choice == "mul": 
            result = 1 
            for i in args: 
                result = result * i 
        return result 
    result = add_mul('mul', 1,2,3,4,5)
    print(result)
    #120

    バイナリしゅつりょくかんすう

    def print_kwargs(**kwargs):
        print(kwargs)
    print_kwargs(a=1)
    #{'a': 1}
    print_kwargs(name='foo', age=3)
    #{'age': 3, 'name': 'foo'}
    関数の結果値は1つで、複数の値を返す場合はパッケージ化して1つに送信します.tupleではなくn個の結果値を取得したい場合は、呼び出し時にn個の変数に代入すればよい.

    初期値の設定


    パラメータの初期値をプリセットできます.
    def say_myself(name, old, man=True):
    このように設定すると、呼び出し時に3番目の引数をtrueと書くと、
    パラメータをFalseと書くと、出力されるパラメータはプリセット値と同じで、プリセット値とは関係ありません.
    初期値を設定したパラメータが最後の位置でない場合、初期値を設定したパラメータの後にエラーが発生し、初期値を設定していないパラメータが使用できないことを示します.

    lambda


    関数を1行に簡略化します.returnコマンドがなくても、結果値が返されます.
    add = lambda a, b: a+b
    result = add(3, 4)
    print(result)
    #7
    注意:https://wikidocs.net/24