Python チュートリアル - 関数

DDD
DDDオリジナル
2025-01-06 13:52:40254ブラウズ

導入

この関数は、コードの重複を減らし、複雑なタスクを整理することを目的とした命令を含む呼び出し可能なユニットです。 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() 関数を下の図に示します。

Python Tutorial - unction

ラムダ

ラムダは匿名関数です。ラムダには、一般的な関数と同様に、多くの引数を含めることができます。ラムダ関数は、値を直接返す小さな関数の作成に適しています。

これは 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。