Python ファンクション

関数は呼び出される際にのみ実行されるコードブロックです。

データ(パラメータと呼ばれます)を関数に渡すことができます。

関数はデータを結果として返すことができます。

関数を作成します

Pythonでは、 def キーワードで関数を定義します:

インスタンス

def my_function():
  print("Hello from a function")

関数の呼び出し

関数を呼び出すには、関数名の後に括弧を使用してください:

インスタンス

def my_function():
  print("Hello from a function")
my_function()

インスタンスを実行

パラメータ

情報は関数にパラメータとして渡されます。

パラメータは関数名の後の括弧内で指定されます。必要に応じて、任意の数のパラメータを追加できますが、カンマで区切ります。

以下の例は、パラメータ(fname)を持つ関数を持っています。この関数を呼び出すと、名前を渡し、関数内でそれを使用してフルネームを印刷します:

インスタンス

def my_function(fname):
  print(fname + " Gates")
my_function("Bill")
my_function("Steve")
my_function("Elon")

インスタンスを実行

デフォルトのパラメータ値

以下の例では、デフォルトのパラメータ値の使用方法を示します。

もしパラメータのない関数を呼び出した場合、デフォルト値を使用します:

インスタンス

def my_function(country = "China"):
  print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

インスタンスを実行

リストで引数を渡す

関数に送信する引数はどんなデータ型でもかまいません(文字列、数値、リスト、辞書など)、関数内では同じデータ型として扱われます。

例えば、リスト(リスト)として引数を送信すると、それが関数に到達するまでリスト(リスト)のままです:

インスタンス

def my_function(food):
  for x in food:
    print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

インスタンスを実行

返り値

関数から値を返す場合は、returnを使ってください。 return 文:

インスタンス

def my_function(x):
  return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

インスタンスを実行

キーワード引数

key = value 语法を使って引数を送信することもできます。

引数の順序は関係ありません。

インスタンス

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

インスタンスを実行

Pythonのドキュメントでは、「キーワード引数」という言葉が「kwargs」と略されることが一般的です。

任意の引数

あなたが関数に何個の引数を渡すか知らなければ、関数定義の引数名の前に * を追加してください。

このようにして、関数は引数のタプルを受け取り、それぞれに対応してアクセスできます:

インスタンス

引数の数が未知の場合は、引数名の前に * を追加してください:

def my_function(*kids):
  print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

インスタンスを実行

pass 文

関数の定義は空であってはならないが、何らかの理由で内容のない関数の定義を記述した場合は、エラーを避けるために pass 文を使ってください。

インスタンス

def myfunction:
  pass

インスタンスを実行

再帰

Python は関数の再帰も受け入れます。これは、定義された関数が自身を呼び出すことを意味します。

再帰は一般的な数学とプログラミングの概念です。これは、関数が自身を呼び出すことを意味します。この方法の利点は、結果を達成するためにデータを循環的にアクセスできることです。

開発者は再帰に対して非常に慎重に行動する必要があります。なぜなら、終わりなきループを作成したり、メモリやプロセッサの能力を過度に使用する関数を簡単に書き込むことができます。しかし、正しく書かれた場合、再帰は非常に効果的で数学的に美しいプログラミング方法になる可能性があります。

この例では、tri_recursion() は、自身を呼び出す(「再帰」)と定義された関数です。k 変数を使用してデータを扱い、再帰のたびに減少(-1)します。条件が 0 以下でない場合(例えば、0 であれば)、再帰が終了します。

新しい開発者にとっては、その動作原理を理解するために時間が必要かもしれません。最善の方法は、テストし、修正することです。

インスタンス

再帰の例:

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result
print("\n\n再帰の例の結果")
tri_recursion(6)

インスタンスを実行