logo

Python 関数

Python 関数 特定のタスクを返すステートメントのブロックです。そのアイデアは、いくつかの一般的または繰り返し実行されるタスクをまとめて関数を作成することです。これにより、異なる入力に対して同じコードを何度も何度も記述する代わりに、関数呼び出しを実行して、それに含まれるコードを何度も再利用できるようになります。

いくつかの 関数を使用する利点



  • コードの可読性の向上
  • コードの再利用性を高める

Python 関数の宣言

関数を宣言する構文は次のとおりです。

Python 関数

Python関数宣言の構文

Python の関数の種類

以下に、さまざまなタイプの関数を示します。 パイソン :



  • 組み込みライブラリ関数: これらは 標準機能 Python で使用できるもの。
  • ユーザー定義関数: 要件に基づいて独自の関数を作成できます。

Python で関数を作成する

Python で関数を定義するには、 確かに キーワード。必要に応じて、あらゆる種類の機能やプロパティを追加できます。次の例により、Python で関数を記述する方法を理解できます。このようにして、def キーワードを使用して Python 関数定義を作成できます。

Python3
# A simple Python function def fun(): print('Welcome to GFG')>

Python での関数の呼び出し

Python で関数を作成した後、関数名 Python の後ろにその特定の関数のパラメーターを含む括弧を続けて使用することで、その関数を呼び出すことができます。以下はPythonのdef関数を呼び出す例です。

Python3
# A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>

出力:



Welcome to GFG>

パラメータ付きの Python 関数

C/C++ または Java の経験がある場合は、次のことを考慮する必要があります。 戻り値の型 機能と データ・タイプ 引数の。これは Python でも同様に可能です (特に Python 3.5 以降の場合)。

パラメータを含む Python 関数の構文

 def function_name(parameter: data_type) ->return_type: '''Docstring''' # 関数の本体の戻り式>>

次の例では、 引数とパラメータ これについてはこの記事の後半で説明するので、理解できなかった場合はもう一度戻ってください。

Python3
def add(num1: int, num2: int) ->int: '''2 つの数値を加算します''' num3 = num1 + num2 return num3 # ドライバー コード num1, num2 = 5, 15 ans = add(num1, num2) print(f'の加算{num1} と {num2} の結果 {ans}.')>>

出力:

The addition of 5 and 15 results 20.>

注記: 次の例は構文 1 を使用して定義されています。練習のために構文 2 に変換してみてください。

Python3
# some more functions def is_prime(n): if n in [2, 3]: return True if (n == 1) or (n % 2 == 0): return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))>

出力:

False True>

Python 関数の引数

引数は、関数のかっこ内に渡される値です。関数には、カンマで区切られた任意の数の引数を含めることができます。

この例では、Python で単純な関数を作成し、関数の引数として渡された数値が偶数であるか奇数であるかを確認します。

Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function evenOdd(2) evenOdd(3)>

出力:

even odd>

Python 関数の引数の種類

Python は、関数呼び出し時に渡すことができるさまざまなタイプの引数をサポートしています。 Python には、次の関数の引数の型があります。

  • デフォルトの引数
  • キーワード引数 (名前付き引数)
  • 位置引数
  • 任意の引数 (可変長引数 *args および **kwargs)

それぞれのタイプについて詳しく説明します。

デフォルトの引数

デフォルトの引数 は、その引数の関数呼び出しで値が指定されていない場合に、デフォルト値を想定するパラメーターです。次の例は、Python で関数を作成するためのデフォルトの引数を示しています。

Python3
# Python program to demonstrate # default arguments def myFun(x, y=50): print('x: ', x) print('y: ', y) # Driver code (We call myFun() with only # argument) myFun(10)>

出力:

x: 10 y: 50>

C++ のデフォルト引数と同様、関数内の任意の数の引数にデフォルト値を設定できます。ただし、デフォルトの引数を取得したら、その右側にあるすべての引数にもデフォルト値が必要になります。

キーワード引数

この目的は、呼び出し元がパラメータの順序を覚えておく必要がないように、呼び出し元が値を含む引数名を指定できるようにすることです。

Python3
# Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname='Geeks', lastname='Practice') student(lastname='Practice', firstname='Geeks')>

出力:

Geeks Practice Geeks Practice>

位置引数

私たちが使用したのは、 位置引数 関数呼び出し中に、最初の引数 (または値) が name に割り当てられ、2 番目の引数 (または値) が age に割り当てられます。位置を変更するか、位置の順序を忘れた場合、以下のケース 2 の例に示すように、値が間違った場所で使用される可能性があります。ここでは、27 が名前に割り当てられ、Suraj が年齢に割り当てられます。

Python3
def nameAge(name, age): print('Hi, I am', name) print('My age is ', age) # You will get correct output because  # argument is given in order print('Case-1:') nameAge('Suraj', 27) # You will get incorrect output because # argument is not in order print('
Case-2:') nameAge(27, 'Suraj')>

出力:

  Case-1:  Hi, I am Suraj My age is 27   Case-2:  Hi, I am 27 My age is Suraj>

任意のキーワード引数

Python の任意のキーワード引数では、 *args および **kwargs 特殊記号を使用して関数に可変数の引数を渡すことができます。特別な記号が 2 つあります。

有限状態マシン
  • Python の *args (キーワード以外の引数)
  • **Python の kwargs (キーワード引数)

例 1: 可変長のキーワード以外の引数

Python3
# Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>

出力:

Hello Welcome to techcodeview.com>

例 2: 可変長のキーワード引数

Python3
# Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')>

出力:

first == Geeks mid == for last == Geeks>

ドキュメント文字列

関数の後の最初の文字列はドキュメント文字列と呼ばれます。 ドキュメント文字列 要するに。これは、関数の機能を説明するために使用されます。関数での docstring の使用はオプションですが、これは良い習慣であると考えられています。

以下の構文を使用して、関数の docstring を出力できます。

  Syntax:   print(function_name.__doc__)>

例: 関数に docstring を追加する

Python3
# A simple Python function to check # whether x is even or odd def evenOdd(x):  '''Function to check if the number is even or odd''' if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function print(evenOdd.__doc__)>

出力:

Function to check if the number is even or odd>

関数内の Python 関数

別の関数内で定義された関数は、 内部関数 または 入れ子関数 。ネストされた関数は、それを囲んでいるスコープの変数にアクセスできます。内部関数は、関数の外部で発生するすべてのことから保護するために使用されます。

Python3
# Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love techcodeview.com' def f2(): print(s) f2() # Driver's code f1()>

出力:

I love techcodeview.com>

Python の匿名関数

Python では、 無名関数 関数には名前がないことを意味します。すでにご存知のとおり、def キーワードは通常の関数の定義に使用され、lambda キーワードは匿名関数の作成に使用されます。

Python3
# Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))>

出力:

343 343>

Python の再帰関数

再帰 Python では、関数がそれ自体を呼び出すときのことを指します。問題を解決するために再帰関数を構築する必要がある場合は数多くあります。 数学的および再帰的問題。

再帰関数は非終了ループのようになる可能性があるため、再帰関数の使用には注意が必要です。再帰関数を作成するときに exit ステートメントを確認することをお勧めします。

Python3
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>

出力

24>

ここでは、数値の階乗を計算する再帰関数を作成しました。この関数の終了ステートメントは、n が 0 に等しい場合であることがわかります。

Python 関数の return ステートメント

関数 return ステートメントは、関数を終了して関数の呼び出し元に戻り、指定された値またはデータ項目を呼び出し元に返すために使用されます。 return ステートメントの構文は次のとおりです。

return [expression_list]>

return ステートメントは、関数の実行の最後に返される変数、式、または定数で構成できます。上記のいずれも return ステートメントに存在しない場合は、None オブジェクトが返されます。

例: Python 関数の戻りステートメント

Python3
def square_value(num):  '''This function returns the square  value of the entered number''' return num**2 print(square_value(2)) print(square_value(-4))>

出力:

4 16>

参照渡しと値渡し

注意すべき重要な点の 1 つは、Python ではすべての変数名が参照であるということです。関数 Python に変数を渡すと、オブジェクトへの新しい参照が作成されます。 Python でのパラメータの受け渡しは、Java での参照の受け渡しと同じです。

イラストレーターの上付き文字
Python3
# Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

出力:

[20, 11, 12, 13, 14, 15]>

参照を渡し、受け取った参照を別のものに変更すると、渡されたパラメータと受け取ったパラメータの間の接続が切断されます。たとえば、次のようなプログラムについて考えてみましょう。

Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>

出力:

[10, 11, 12, 13, 14, 15]>

別の例は、(関数内で) 新しい値を割り当てると参照リンクが壊れることを示しています。

Python3
def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that x is not modified # after function call. x = 10 myFun(x) print(x)>

出力:

10>

エクササイズ: 次のコードの出力を推測してみてください。

Python3
def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>

出力:

2 3>

クイックリンク

  • Python 関数に関するクイズ
  • Pythonのメソッドと関数の違い
  • Python のファーストクラス関数
  • Python 関数に関する最近の記事

FAQ - Python 関数

Q1. Pythonの関数とは何ですか?

Python 関数はコードのブロックであり、呼び出されたときにのみ実行されます。特定のタスクを返すようにプログラムされています。パラメータと呼ばれる関数に値を渡すことができます。反復的なタスクの実行に役立ちます。

Q2. Pythonの4種類の関数とは何ですか?

Python の関数の主な種類は次のとおりです。

  • 内蔵機能
  • ユーザー定義関数
  • ラムダ関数
  • 再帰関数

Q3. H Python で関数を書く方法 ?

Python で関数を記述するには、def キーワードを使用して関数名を記述します。使用後に関数コードを提供できます 「:」。 関数を定義するための基本的な構文は次のとおりです。

def 関数名():

#声明

Q4. Pythonの関数のパラメータとは何ですか?

Python のパラメータは、関数を呼び出すときに引数として渡される値を取る変数です。関数には任意の数のパラメーターを含めることができます。 Python のパラメータにデフォルト値を設定することもできます。