Python 関数の例:呼び出し、インデント、引数、戻り値
Python の関数とは?
Python の関数 参照されたときに実行されるコードです。プログラム内の複数の場所でコードを利用するために使用されます。メソッドまたはプロシージャとも呼ばれます。 Python には、print()、input()、compile()、exec() などの組み込み関数が多数用意されていますが、独自の関数を自由に作成することもできます。
このチュートリアルでは、学びます
- Python で関数を定義して呼び出す方法
- Python におけるインデント (スペース) の重要性
- どのように関数が値を返すか?
- 関数の引数
Python で関数を定義して呼び出す方法
Python の関数は、「def 」 によって定義されます。 関数名と括弧 ( () ) が続くステートメント
例:
コマンド「def func1():」を使用して関数を定義し、関数を呼び出してみましょう。関数の出力は、「私は Python 関数を学習しています」 になります。
関数 print func1() def func1():を呼び出して、コマンド「I am learning Python function None.」を出力します。 」
Python には、関数を定義する一連の規則があります。
- すべての引数または入力パラメータは、これらの括弧内に配置する必要があります
- 関数の最初のステートメントは、オプションのステートメント (docstring または関数のドキュメント文字列) にすることができます
- すべての関数内のコードはコロン (:) で始まり、インデント (スペース) する必要があります
- ステートメント return (式) は関数を終了し、オプションで値を呼び出し元に返します。引数のない return ステートメントは return None と同じです。
Python におけるインデント (スペース) の重要性
Python 関数に慣れる前に、Python 関数を宣言するためのインデント規則を理解することが重要です。これらの規則は、条件、ループ、変数の宣言など、Python の他の要素にも適用できます。
Python は特定のインデント スタイルに従ってコードを定義します。Python 関数には、関数の開始と終了を示す中括弧のような明示的な開始または終了がないため、このインデントに依存する必要があります> .ここでは、「print」コマンドを使用した簡単な例を取り上げます。 def func 1 () のすぐ下に「print」関数を記述すると、「インデント エラー:インデントされたブロックが必要です」と表示されます。 「.
これで、「印刷」関数の前にインデント (スペース) を追加すると、期待どおりに印刷されるはずです。
コードを正常に動作させるには、少なくとも 1 つのインデントで十分です。ただし、ベスト プラクティスとして、関数を呼び出すために 3 ~ 4 個のインデントを残すことをお勧めします .
また、インデントを宣言している間は、残りのコードでも同じインデントを維持する必要があります。 .たとえば、下のスクリーン ショットでは、「まだ func1 にある」別のステートメントを呼び出し、最初の print ステートメントのすぐ下で宣言されていない場合、インデント エラー 「unindent does not match any other indentation level.」が表示されます。強い>
ここで、両方のステートメントに同じインデントを適用して同じ行に配置すると、期待どおりの出力が得られます。
関数はどのように値を返しますか?
Python の return コマンドは、関数の呼び出し元に返す値を指定します。
次の例でこれを理解しましょう
ステップ 1) ここで、関数が「return」でない場合を確認します。たとえば、4 の 2 乗が必要で、コードが実行されたときに答えが「16」になるはずです。単純に「print x*x」コードを使用すると、これが得られますが、関数「print square」を呼び出すと、出力として「None」が得られます。これは、関数を呼び出すと、再帰が発生せず、関数の最後に落ちるためです。関数の最後で失敗した場合、Python は「None」を返します。
ステップ 2) これを明確にするために、print コマンドを割り当てコマンドに置き換えます。出力を確認してみましょう。
コマンド「print square (4)」を実行すると、実際にオブジェクトの値が返されます。ここで実行する特定の関数がないため、「None」が返されます。
ステップ 3) ここで、「return」コマンドを使用して出力を取得する方法を見ていきます。 「return」関数を使用してコードを実行すると、出力「16」が得られます。
ステップ 4) Python の関数はそれ自体がオブジェクトであり、オブジェクトには何らかの値があります。ここでは、Python がオブジェクトをどのように扱うかを見ていきます。コマンド「print square」を実行すると、オブジェクトの値が返されます。引数を渡していないため、ここで実行する特定の関数はありません。オブジェクトの場所であるデフォルト値 (0x021B2D30) を返します。 実際の Python プログラムでは、おそらくこれを行う必要はありません。
関数の引数
引数は、呼び出されたときに関数に渡される値です。
つまり、呼び出し側では引数であり、関数側ではパラメーターです。
Python Args の仕組みを見てみましょう –
ステップ 1) 引数は関数定義で宣言されます。関数の呼び出し中に、以下に示すようにその引数の値を渡すことができます
ステップ 2) 引数のデフォルト値を宣言するには、関数定義で値を割り当てます。
例:x にはデフォルト値がありません。 y=0 のデフォルト値。乗算関数を呼び出すときに引数を 1 つだけ指定すると、Python は y=0 の値を維持しながら、指定された値を x に代入します。したがって、x*y=0 の乗算
ステップ 3) 今回は、デフォルト値 y=0 の代わりに値を y=2 に変更し、(4×2)=8 として出力を返します。
ステップ 4) Python で引数を渡す順序を変更することもできます。ここでは、値 x と y の順序を逆にして、x=4 と y=2 にしています。
ステップ 5) 複数の引数を配列として渡すこともできます。この例では、(*args) 関数を呼び出して、複数の引数 (1,2,3,4,5) を呼び出しています。
例:(*args) 関数を呼び出すときに、複数の引数を数値 (1,2,3,4,5) として宣言しました。出力を (1,2,3,4,5) として出力します
ヒント :
- Python 2.7。 関数のオーバーロード Python ではサポートされていません。関数のオーバーロードは、異なる実装で同じ名前の複数のメソッドを作成する機能です。関数のオーバーロードは Python 3 で完全にサポートされています
- メソッドと関数の間にはかなりの混乱があります。 Python のメソッドはオブジェクト インスタンスに関連付けられていますが、関数は関連付けられていません。 Python がメソッドを呼び出すと、その呼び出しの最初のパラメーターが適切なオブジェクト参照にバインドされます。簡単に言えば、Python のスタンドアロン関数は「関数」ですが、クラスまたはインスタンスの属性である関数は「メソッド」です。
完全な Python 3 コードはこちら
#define a function def func1(): print ("I am learning Python function") print ("still in func1") func1() def square(x): return x*x print(square(4)) def multiply(x,y=0): print("value of x=",x) print("value of y=",y) return x*y print(multiply(y=2,x=4))
完全な Python 2 コードはこちら
#define a function def func1(): print " I am learning Python function" print " still in func1" func1() def square(x): return x*x print square(4) def multiply(x,y=0): print"value of x=",x print"value of y=",y return x*y print multiply(y=2,x=4)
まとめ:
Python の関数は、単一の関連アクションを実行するために使用される再利用可能なコードです。この記事では、
- def で定義された関数 声明
- すべての関数内のコード ブロックはコロン (:) で始まり、インデント (スペース) する必要があります
- 引数や入力パラメータは、これらの括弧内に配置する必要があります.
- 関数を宣言した後、コードの前に少なくとも 1 つのインデントを残す必要があります
- def 関数内のコード全体で同じインデント スタイルを維持する必要があります
- ベスト プラクティスとして、ステートメントの前に 3 つまたは 4 つのインデントが最適と見なされます
- 「return」コマンドを使用して、関数呼び出しに値を返すことができます。
- 呼び出し元の関数に引数が指定されていない場合、Python は (0x021B2D30) のようなランダムな値を出力します。例「印刷機能」
- 呼び出し側では引数、関数側ではパラメータ
- 引数のデフォルト値 – 乗算関数またはその他の関数を呼び出すときに引数を 1 つだけ指定すると、Python はデフォルトで他の引数を割り当てます
- Python では、引数の順序を逆にすることもできます
Python