工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python関数をマスターする:定義、呼び出し、インデント、引数、戻り値

Python関数をマスターする:定義、呼び出し、インデント、引数、戻り値

関数はあらゆるPythonアプリケーションの構成要素です。再利用可能なロジックをカプセル化し、コードをDRY(Don't Repeat Yourself)に保ち、プログラムの可読性、テスト容易性、保守性を高めます。このガイドでは、Python 3で関数を書き、呼び出し、トラブルシューティングするために必要なすべてのステップを解説し、Python 2との違いにも触れます。

Pythonにおける関数とは?

Python関数は、呼び出されたときに実行される自己完結型のコードブロックです。単一の明確なタスクを実行し、必要な場所で再利用できるミニプログラムと考えるとわかりやすいでしょう。Pythonには多数の組み込み関数(print()、input()など)が用意されていますが、独自の関数を作成することで、コードに進化と拡張の力を与えることができます。

関数の定義と呼び出し

関数はdefキーワードで宣言し、続けて関数名と括弧で囲んだパラメータリストを記述します。関数の本体はコロンで始まり、インデントする必要があります。

def greet():
    print("Hello, Python!")

# 関数を呼び出す
greet()

出力: Hello, Python!

インデントが重要な理由

Pythonはブレースや明示的なbegin/end文を使用しません。代わりに、インデントでスコープを定義します。関数、ループ、条件分岐など、すべてのコードブロックは一貫したインデントレベルを共有しなければなりません。

  1. 関数定義の後には、最低1レベルのインデント(通常はスペース4つ)が必要です。
  2. その関数内のすべての文は、同じインデントを使用しなければなりません。
  3. タブとスペースの混在、またはインデント深さの不一致はIndentationErrorを引き起こします。

正しいインデントの例:

def demo():
    print("Line 1")
    print("Line 2")

よくある間違い:

def demo():
print("Oops")

これは以下のエラーになります: IndentationError: expected an indented block

return文の使用

returnキーワードは値を呼び出し元に返します。関数がreturnに到達せずに終了した場合、暗黙的にNoneが返されます。

def square(x):
    return x * x

print(square(4))  # 16

returnなしの場合:

def square(x):
    x * x

print(square(4))  # None

また、関数オブジェクト自体を出力(例: print(square))すると、そのメモリアドレスが表示されますが、アプリケーションコードではほとんど役立ちません。

関数への引数渡し

引数は関数が動作するために必要なデータを供給します。パラメータは関数シグネチャで定義されるプレースホルダーです。

def multiply(x, y=1):
    return x * y

print(multiply(4))        # 4 (yはデフォルトで1)
print(multiply(4, 2))     # 8
print(multiply(y=3, x=2)) # 6 (キーワード引数で順序を変更可能)

可変長引数(*argsと**kwargs)

任意の数の引数を受け取る関数が必要な場合があります。位置引数には*args、キーワード引数には**kwargsを使用します。

def summarize(*values, **options):
    total = sum(values)
    print(f"Total: {total}")
    if options.get("show_details"):
        print("Values:", values)

summarize(1, 2, 3, 4, 5, show_details=True)

Python 2とPython 3の主な違い

関数設計のベストプラクティス

総合的な例

# 包括的なPython 3スクリプトの例
def greet():
    """フレンドリーな挨拶を出力する。"""
    print("Hello, Python!")

def square(x: int) -> int:
    """xの2乗を返す。"""
    return x * x

def multiply(x: int, y: int = 1) -> int:
    """xとyの積を返す。yのデフォルトは1。"""
    return x * y

# デモンストレーション
if __name__ == "__main__":
    greet()
    print(square(4))        # 16
    print(multiply(4))      # 4
    print(multiply(4, 2))   # 8
    print(multiply(y=2, x=4)) # 8

詳細については、公式Pythonドキュメントの関数定義を参照してください。

Python

  1. C++関数を実例で徹底解説:基本から応用まで
  2. Python 文・インデント・コメント: 明確なガイド
  3. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  4. Python ラムダ関数: 無名関数の実践ガイド
  5. Pythonジェネレータ:効率的イテレーションと高度なユースケース
  6. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  7. Pythonデコレータマスター:エキスパート技法で関数を拡張
  8. Pythonラムダ関数をマスターする:実例とベストプラクティス
  9. Python abs()関数:数値と複素数の絶対値を計算
  10. Python round()関数を実例で徹底解説
  11. Python range()関数をマスター:基礎から応用まで