ホームページ >バックエンド開発 >Python チュートリアル >Python チュートリアル - 関数
この関数は、コードの重複を減らし、複雑なタスクを整理することを目的とした命令を含む呼び出し可能なユニットです。 void 関数 (戻り値なし) と値を返す関数の 2 種類があります。
これは Python の関数の基本構造です。
def function_name(args): function body
これは、Python の void 関数 (戻り値なし) の例です。
# create a function def hello(): print("hello!") # call the function hello()
出力
hello!
上記のコードに基づいて、hello() という関数が作成されます。関数名に続けて括弧 () を指定することで関数を呼び出します。
これは戻り値を使用した関数の例です。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
出力
6
上記のコードに基づいて、2 つの数値を合計する add() という関数が作成されます。 add() 関数の戻り値は、結果変数内に格納されます。
戻り値関数を使用する場合は、戻り値が使用されていることを確認してください。
Python の関数は複数の引数を動的に受け取ることができます。関数に複数の引数を実装するには、2 つの方法があります。
引数: 複数の引数は、キーワードを指定せずに関数に実装されます。引数は *args.
キーワード引数: 複数の引数は、指定されたキーワードを使用して関数に実装されます。キーワード引数は **kwargs.
引数とキーワード引数は両方とも、関数内の引数定義の最後の位置に配置する必要があります。
これは、数値の合計を動的に計算する引数アプローチを使用した複数の引数の実装の例です。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
出力
3 6 24
上記のコードに基づいて、異なる数のパラメータを指定して sum() 関数を呼び出すことができます。
これは、キーワード引数アプローチを使用した複数の引数の実装の例です。
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
出力
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
上記のコードに基づいて、display_info() 関数を異なる数のパラメータで呼び出すことができます。 **kwargs を使用すると、パラメータをキーワードで定義できます。
引数とキーワード引数は両方とも一緒に使用できます。これは一例です。
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
出力
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
再帰関数は、タスクを完了するときに自分自身を呼び出す関数です。再帰関数は、階乗数、フィボナッチ数列などを含む多くの問題を解決できます。
再帰関数には 2 つの主要なコンポーネントがあります:
この例では、階乗計算は再帰関数を使用して実装されています。
def function_name(args): function body
出力
# create a function def hello(): print("hello!") # call the function hello()
factorial() 関数を詳しく見てみましょう。この関数には 2 つのコンポーネントが関係しています:
基本ケース: n の値が 0 または 1 に等しい場合、関数の実行は終了します。
再帰関係: n の値が 1 より大きい場合に関数が実行されます。
hello!
factorial() 関数を下の図に示します。
ラムダは匿名関数です。ラムダには、一般的な関数と同様に、多くの引数を含めることができます。ラムダ関数は、値を直接返す小さな関数の作成に適しています。
これは sum() 関数の例です。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
これは、2 つの数値を合計するラムダ関数の例です。ラムダ関数は、sum_func.
という変数内に保存されます。
6
ラムダ関数を使用するには、変数名で関数を呼び出します。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
map() 関数は、リスト内の各項目に対して提供されたコールバック関数を実行します。
これは、各数値を 3 で乗算する map() 関数の例です。
3 6 24
出力
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
上記のコードに基づくと、triple() 関数は、map() 関数のコールバックとして機能します。つまり、数値リスト内の項目ごとに Triple() 関数が呼び出されます。次に、map() 関数の結果がリストに変換され、result という変数内に格納されます。
上記の例は、ラムダ関数を使用して簡略化できます。
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
出力
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
filter() 関数は、指定されたコールバック関数に基づいてリスト内の項目を選択します。 filter() 関数は、提供されたコールバック関数を使用してリスト内の項目をフィルター処理するのに適しています。 filter() 関数には、ブール値を返すコールバック関数が必要です。
これは、リスト内の偶数のみを選択する filter() 関数の例です。
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
出力
def factorial(n): if n == 0 or n == 1: return 1 else: return n * factorial(n-1) # call the function result = factorial(5) print(result)
上記のコードに基づいて、filter() 関数は is_even() をコールバック関数として使用して、リストから偶数を選択します。
この例は、ラムダ関数を使用して簡略化できます。
120
出力
def function_name(args): function body
この機能は重複したコードを削除するために使用できます。たとえば、register() と login() という 2 つの関数があります。どちらの関数も検証プロセスを使用しています。
# create a function def hello(): print("hello!") # call the function hello()
検証プロセスに重複したコードがあります。これらの重複を削除するには、検証プロセスを別の関数でラップします。
hello!
validate() 関数は、register() 関数とlogin() 関数内で使用できます。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
上記のコードに基づくと、追加の検証ルールが更新された場合に、検証ルールを 1 か所 (validate() 関数内) で更新できるため、コードはよりクリーンで変更が容易になります。
これらは、Python で関数を操作する際の重要なヒントです。
関数は単一のタスクを完了する必要があります。複数のタスクが必要な場合は、他のタスク用に別の関数を作成します。
関数の引数の最大数は 3 です。引数が 3 つを超えると思われる場合は、関数の引数に専用のデータ オブジェクトを使用することを検討してください。
関数の引数の最大数については議論の余地があるようです。
これは、引数を使用した create_account() 関数の例です。
6
create_account() 関数は、よりクリーンなコードのためにデータ オブジェクトを使用するように変更できます。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
これは関数内でドキュメントを使用する例です。
3 6 24
この記事が Python の学習に役立つことを願っています。ご意見がございましたら、コメント欄にご記入ください。
以上がPython チュートリアル - 関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。