Python関数入門



Pythonでの関数は何ですか?
Pythonでは、関数は特定のタスクを行う関連ステートメントのグループです.
関数は、より合理化され、組織化されたプログラミングを行うPythonでより小さなコードの塊を作成するために使用されます.このため、コードは他の人がそれを見る人に理解できます.最も重要なことに、関数はコードを反復的にし、再利用性を高める.
def function_name(parameters):
    """docstring"""
    statement(s) 
上の例を使う
  • キーワードDEFは関数の開始を示します.
  • 関数名は、関数を一意に識別するために使用されます.
  • パラメーター/引数を使用して値を関数に渡します.しかし、それらは任意です.
  • 機能ヘッダーの終わりは、コロン(:)
  • によって示されます
  • (docstring)セグメントは、上記の基金がどのようにするべきかについて詳細に使用しました.
  • 関数から値を返すオプションのreturn文があります.


  • def greet(name):
        """
        This function greets to
        the person passed in as
        a parameter
        """
        print("Hello, " + name + ". Good morning!")
    

    Pythonでの関数の呼び出し
    Python関数を定義した後、別の関数、Pythonプロンプトまたは別のプログラムから呼び出すことができます.
    関数名とパラメータを呼び出して呼び出します.
    >>>greet('Morris')
    Hello, Morris. Good morning!
    
    完全な機能とその呼び出し;
    def greet(name):
        """
        This function greets to
        the person passed in as
        a parameter
        """
        print("Hello, " + name + ". Good morning!")
    
    greet('Morris')
    
    出力
    Hello, Morris. Good morning!
    

    docstring
    ドキュメンテーション文字列またはdocstringは関数ヘッダの最初の文字列です.特定の関数が何をするかは詳細です.それはオプションですが、高く推奨されます.複数の行にまたがるように、docstringを有効にするために三重引用符を使用します.

    返り値
    関数を終了し、それが呼び出されたw hereverに戻るために使用します.
    return [expression_list]
    
    return文には、評価された値を返す式を含めることができます.ステートメント内に式がない場合、あるいはreturn文自体が関数内に存在しない場合、この関数はNoneオブジェクトを返します.

    >>> print(greet("May"))
    Hello, May. Good morning!
    None
    
    ここで、Noneは直接値を出力するので、Noneは返された値です.
    リターンの例
    def absolute_value(num):
        """This function returns the absolute
        value of the entered number"""
    
        if num >= 0:
            return num
        else:
            return -num
    
    
    print(absolute_value(2))
    
    print(absolute_value(-4))
    
    出力
    2
    4
    

    Python関数引数
    変数の引数をとる関数を定義できます.
    def greet(name, msg):
        """This function greets to
        the person with the provided message"""
        print("Hello", name + ', ' + msg)
    
    greet("Monica", "Good morning!")
    
    出力
    Hello Monica, Good morning!
    
    ここで関数greet ()は2つのパラメータを持ちます.
    引数を別の数で呼び出すと、インタプリタはエラーメッセージを表示します.以下の関数は、それぞれのエラーメッセージと共に引数なしで引数を指定します
    >>> greet("Monica")    # only one argument
    TypeError: greet() missing 1 required positional argument: 'msg'
    
    >>> greet()    # no arguments
    TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'
    

    可変関数引数
    変数の数を取ることができる関数を定義する他の方法があります.
    Pythonデフォルト引数
    代入演算子(=)を使用して引数に既定値を指定できます.
    def greet(name, msg="Good morning!"):
        """
        This function greets to
        the person with the
        provided message.
    
        If the message is not provided,
        it defaults to "Good
        morning!"
        """
    
        print("Hello", name + ', ' + msg)
    
    
    greet("Kate")
    greet("Bruce", "How do you do?")
    
    出力
    Hello Kate, Good morning!
    Hello Bruce, How do you do?
    
    この関数では、パラメーター名は既定値を持たず、呼び出し中に必須(必須)です.
    一方、パラメータMSGには「グッドモーニング」というデフォルト値が設定されている.したがって、呼び出し中にオプションです.値が与えられるならば、それはデフォルト値を上書きします.
    関数の引数の数はデフォルト値を持つことができます.しかし、一旦デフォルト引数があるならば、その右のすべての引数もデフォルト値を持たなければなりません.
    つまり、デフォルトでない引数はデフォルト引数には対応できません.例えば、上記の関数ヘッダを定義しているなら、
    def greet(msg = "Good morning!", name):
    
    以下のようにエラーが発生します:
    SyntaxError: non-default argument follows default argument
    

    Pythonキーワード引数
    いくつかの値を持つ関数を呼び出すとき、これらの値はその位置に応じて引数に割り当てられます.
    例えば、上記の関数greet ()では、greetと呼んでいます("Bruce ", "How do do ??)"値“bruce”は引数名に割り当てられます.を返します.
    Pythonはキーワード引数を使用して関数を呼び出すことができます.このように関数を呼び出すと、引数の順序(位置)を変更できます.上記の関数の呼び出しは、すべて有効です.
    # 2 keyword arguments
    greet(name = "Bruce",msg = "How do you do?")
    
    # 2 keyword arguments (out of order)
    greet(msg = "How do you do?",name = "Bruce") 
    
    1 positional, 1 keyword argument
    greet("Bruce", msg = "How do you do?")  
    
    関数呼び出し中に引数をキーワード引数と混ぜることができます.しかし、キーワード引数が位置引数に従わなければならないことを心に留めておかなければなりません.
    キーワード引数の後に位置引数を持つとエラーになります.例えば、以下の関数呼び出しを行います.
    greet(name="Bruce","How do you do?")
    
    を返します.
    SyntaxError: non-keyword arg after keyword arg
    

    Python任意引数
    時々、関数に渡される引数の数を事前に知りません.Pythonでは、任意の数の引数を持つ関数呼び出しを通じてこの種の状況を処理できます.
    関数定義では、引数の前にアスタリスク(*)を使用して引数の種類を示します.以下が例です.
    def greet(*names):
        """This function greets all
        the person in the names tuple."""
    
        # names is a tuple with arguments
        for name in names:
            print("Hello", name)
    
    
    greet("Monica", "Luke", "Steve", "John")
    
    出力
    Hello Monica
    Hello Luke
    Hello Steve
    Hello John
    
    関数を複数の引数で呼びました.これらの引数は関数に渡される前にタプルにラップされます.関数の内部では、forループを使用してすべての引数を返します.