TECH I.S.

Python関数


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

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

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


関数の作成

Pythonでは、関数はdefキーワードを使用して定義されます。

def my_function():   print("関数からこんにちは")

関数の呼び出し

関数を呼び出すには、関数名に続けてかっこを使用します。

def my_function():   print("関数からこんにちは") my_function()

自分で試してみる(現在開発中)»


引数

情報は引数として関数に渡すことができます。

引数は関数名の後の括弧内に指定します。引数はカンマで区切るだけで、必要なだけ追加できます。

次の例には、1つの引数(fname)を持つ関数があります。関数が呼び出されるとき、名前を渡します。これは関数内でフルネームを出力するために使用されます。

def my_function(<strong>fname</strong>):   print(fname + " レフスネス") my_function(<strong>"エミル"</strong>) my_function(<strong>"トビアス"</strong>) my_function(<strong>"リーナス"</strong>)

自分で試してみる(現在開発中)»

Pythonドキュメントでは、*引数*は*args*と短縮されることがよくあります。


パラメータ、それとも引数?

*パラメーター*と*引数*という用語は、関数に渡される情報という同じものに対して使用できます。


関数の観点から見ると、次のようになります。

パラメーターは、関数定義の括弧内にリストされている変数です。

引数は、関数が呼び出されたときに関数に送信される値です。


引数の数

デフォルトでは、関数は正しい数の引数を指定して呼び出される必要があります。つまり、関数が2つの引数を必要とする場合、それ以上でもそれ以下でも2つの引数を指定して関数を呼び出す必要があります。

この関数は2つの引数を想定し、2つの引数を取得します。

def my_function(fname, lname):   print(fname + " " + lname) my_function("エミル", "レフスネス")

自分で試してみる(現在開発中)»

この関数は2つの引数を想定していますが、取得できる引数は1つだけです。

def my_function(fname, lname):   print(fname + " " + lname) my_function("エミル")

自分で試してみる(現在開発中)»


任意の引数、*args

関数に渡される引数の数がわからない場合は、関数定義のパラメーター名の前に*を追加します。

このようにして、関数は引数の*タプル*を受け取り、それに応じて項目にアクセスできます。

引数の数が不明な場合は、パラメータ名の前に*を追加します。

def my_function(*kids):   print("最も若い子供は" + kids[2]) my_function("エミル", "トビアス", "リーナス")

自分で試してみる(現在開発中)»

Pythonドキュメントでは、*任意の引数*は*argsと短縮されることがよくあります。


キーワード引数

*key = value*構文を使用して引数を送信することもできます。

この方法では、引数の順序は重要ではありません。

def my_function(child3, child2, child1):   print("最も若い子供は" + child3) my_function(child1 = "エミル", child2 = "トビアス", child3 = "リーナス")

自分で試してみる(現在開発中)»

*キーワード引数*というフレーズは、Pythonドキュメントではよく*kwargs*と短縮されます。


任意のキーワード引数、**kwargs

関数に渡されるキーワード引数の数がわからない場合は、関数定義のパラメーター名の前に2 つのアスタリスク**を追加します。

このようにして、関数は引数の*ディクショナリ*を受け取り、それに応じて項目にアクセスできます。


Pythonドキュメントでは、*任意のキーワード引数*は**kwargsと短縮されることがよくあります。





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

次の例は、デフォルトのパラメータ値を使用する方法を示しています。

引数なしで関数を呼び出すと、デフォルト値が使用されます。

def my_function(<strong>country = "ノルウェー"</strong>):   print("出身は" + country) my_function("スウェーデン") my_function("インド") my_function() my_function("ブラジル")

自分で試してみる(現在開発中)»


リストを引数として渡す

任意のデータ型の引数(文字列、数値、リスト、ディクショナリなど)を関数に送信でき、関数内では同じデータ型として扱われます。

たとえば、リストを引数として送信した場合、それが関数に到達した時点でもリストのままです。

def my_function(food):   for x in food:     print(x) fruits = ["りんご", "バナナ", "さくらんぼ"] my_function(fruits)

自分で試してみる(現在開発中)»


戻り値

関数に値を返させるには、returnステートメントを使用します。

def my_function(x):   <strong>return 5 * x </strong> print(my_function(3)) print(my_function(5)) print(my_function(9))

自分で試してみる(現在開発中)»


passステートメント

関数定義を空にすることはできませんが、何らかの理由で内容のない関数定義がある場合は、エラーの発生を避けるためにpassステートメントを含めてください。

def myfunction():   pass

自分で試してみる(現在開発中)»


再帰

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

再帰は、数学およびプログラミングの一般的な概念です。関数がそれ自体を呼び出すことを意味します。これには、データをループして結果に到達できるという利点があります。

決して終了しない関数や過剰なメモリやプロセッサ能力を使用する関数を作成してしまう可能性が非常に高いため、開発者は再帰に細心の注意を払う必要があります。ただし、再帰を正しく記述すると、プログラミングに対する非常に効率的で数学的に洗練されたアプローチになります。

この例では、tri_recursion()は、それ自体を呼び出すように定義した関数(「recurse」) です。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)

自分で試してみる(現在開発中)»



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細