Pythonの関数とは?
プログラミング言語の関数とは、一連の繰り返し実行されるコード群を1つの手続きにまとめたものです。Pythonの関数も同様の考え方に基づいており、戻り値の有無に関わらず関数が定義できます。繰り返し行われる処理を関数定義することでソースコードが整理され、判読性・再利用性が高まりメンテナンス性が高まります。 参考:Python 3.9.4 ドキュメント
Pythonの関数の定義は?
Pythonの関数は、次の2種類に分類できます。 ・組み込み関数 Pythonが標準で定義している関数で共通利用できるものを指します ・ユーザ定義関数 ユーザコードにユーザ定義関数のオブジェクトを定義します
関数の考え方は数学の関数に似ています。 例えば「 y = f(x) 」の数式があった場合、関数 f(x) はxの値に応じて必要な計算を行い、yを算出します。Pythonプログラムの関数でも同様に、 「リターン値 = 関数(引数)」が成り立ちます。 構文: リターン値 = 関数(引数 [,,]) 関数 組み込み関数またはユーザ定義関数 引数 関数へ渡るパラメータ群 リターン値 関数からの戻り値、リターン値を持たないこともある
Pythonの関数の使用方法は?
組み込み関数は、関数の用法に応じて使用するだけです。それぞれの引数やリターン値は関数によって仕様が決められています。 使用例: for i in range(3): # range組み込み関数 print("入力値は"+str(i)) # print組み込み関数
ユーザ関数を定義する場合はdef を用います。 用法: def 関数名 (引数名 [,,]): 処理・処理ブロック : 使用例: def my_func(data): # my_funcをユーザ関数として定義 print("入力値は"+str(data)) for i in range(3): my_func(i) # ユーザ定義関数を呼び出す
関数からリターン値を返す場合は returnを用います。 用法: def 関数名 (引数名1, [,,]): 処理・処理ブロック : return 値 使用例: def my_func(data): # my_funcをユーザ関数として定義 print("入力値は"+str(data)) return data**2 # 引数の2乗を返す for i in range(3): result=my_func(i) # ユーザ定義関数を呼び出す print(‘計算結果は’, result)
Pythonの組み込み関数は?
Pythonでは、69種類の組み込み関数が予め定義されています。必要に応じて組み込み関数を併用し、ユーザ定義関数に組み入れて用いるのが良いでしょう。 参考:Python 組み込み関数
数値処理で用いる組み込み関数は?
主に以下の組み込み関数が数値処理で用いられています。
・abs() :絶対値を返す
引数=数値、 リターン値=数値の絶対値
・bin() :2進文字列に変換する
引数=整数、 リターン値=2進文字列
・complex() : 文字列や数値を複素数に変換する
引数=文字列・数値、 リターン値=複素数
・divmod() :複素数を除く数値引数から商と余りの数値を返す
引数=数値、 リターン値=商と余りの数値
・float() :浮動小数に変換する
引数=文字列・数値、 リターン値=浮動小数
・hex() :16進文字列に変換する
引数=整数、 リターン値=16進文字列
・int() :引数から整数型クラスのインスタンスオブジェクトに変換する
引数=文字列・数値、 リターン値=整数
・oct() :8進文字列に変換する
引数=整数、 リターン値=8進文字列
・pow() :引数のべき乗または剰余を返す
引数=数値、 リターン値=数値
・range() :指定する範囲の整数値のリストを生成する
引数=整数値、 リターン値=オブジェクト
・round() :指定した小数行で丸め処理を行う
引数=数値、 リターン値=数値
・set() :新しいset(集合型)オブジェクトを作成する
引数=イテラブルオブジェクト、 リターン値=オブジェクト
・sum() :数値要素の総和を返す
引数=数値、 リターン値=数値
真理値・文字列処理で用いる組み込み関数は?
主に以下の組み込み関数が真理値・文字列処理で用いられています。
・all() :全ての要素が真かどうか確認する 引数=イテラブルオブジェクト、 リターン値=TrueまたはFalse ・any() :いずれかの要素が真かどうか確認する 引数=イテラブルオブジェクト、 リターン値=TrueまたはFalse ・bool() :真理値判定の結果を返す 引数=オブジェクト、 リターン値=TrueまたはFalse ・ascii() :印字可能な表現文字列を返す 引数=オブジェクト、 リターン値=文字列 ・chr() :Unicode コードポイントの文字列を返す 引数=整数、 リターン値=文字列 ・format() :指定書式の文字列を返す 引数=値および指定書式、 リターン値=文字列 ・ord() :Unicode文字に対しコードポイントを表す整数を返す 引数=Unicode文字、 リターン値=整数 ・print() :オブジェクトを指定に従い出力する 引数=オブジェクト/引数、 リターン値=文字列 ・repr() :オブジェクトの表現を文字列で返す 引数=オブジェクト、 リターン値=文字列 ・str() :オブジェクトの文字列を返す 引数=オブジェクト/引数、 リターン値=文字列
オブジェクト処理で用いる組み込み関数は?
主に以下の組み込み関数がオブジェクト処理で用いられています。
・bytearray() :新しいバイト配列を作成する 引数=初期化引数、 リターン値=バイト配列 ・bytes() :新しいバイト配列を作成する(変更不可能) 引数=初期化引数、 リターン値=バイト配列 ・dir() :ローカルスコープのリストまたはオブジェクトの属性リストを返す 引数=オブジェクト、 リターン値=リスト ・enumerate():オブジェクトに番号付けしたenumerateオブジェクトを返す 引数=イテラブルオブジェクト、 リターン値=enumerateオブジェクト ・filter() :関数の結果を指定条件でフィルターし結果を返す 引数=関数およびイテラブルオブジェクト、 リターン値=イテレータ ・frozenset() :新しいfrozensetオブジェクトを返す 引数=イテラブルオブジェクト、 リターン値=frozensetオブジェクト ・getattr() :指定された属性の値を返す 引数=オブジェクト、 リターン値=属性値 ・hash() :オブジェクトのハッシュ値を返す 引数=オブジェクト、 リターン値=ハッシュ値 ・id() :オブジェクトの識別値を返す 引数=オブジェクト、 リターン値=識別値 ・input() :入力から1行読み込み文字列に変換する 引数=プロンプト、 リターン値=文字列 ・isinstance() :オブジェクトの引数型を判定する 引数=オブジェクトおよび引数、 リターン値=TrueまたはFalse ・issubclass() :クラスがサブクラスかどうか判定する 引数=クラスおよび引数、 リターン値=TrueまたはFalse ・iter() :イテレータ オブジェクトを返す 引数=オブジェクトまたは呼び出し可能オブジェクト、 リターン値=イテレータオブジェクト ・len() :オブジェクト要素の個数を返す 引数=オブジェクト、 リターン値=整数 ・list() :リスト型オブジェクトを作成する 引数=イテラブルオブジェクト、 リターン値=リスト型オブジェクト ・locals() :ローカルシンボルテーブルの辞書オブジェクトを返す 引数=なし、 リターン値=辞書オブジェクト ・map() :引数からすべての要素のイテレータを返す 引数=関数およびイテラブルオブジェクト、 リターン値=イテレータ ・max() :引数から最大値を返す 引数=引数またはイテラブルオブジェクト、 リターン値=オブジェクト要素 ・memoryview() :メモリビュー オブジェクトを作成する 引数=オブジェクト、 リターン値=オブジェクト ・min() :引数から最小値を返す 引数=引数またはイテラブルオブジェクト、 リターン値=オブジェクト要素 ・next() :__next__()メソッドにより次の要素を順に返す 引数=イテラブルオブジェクト、 リターン値=オブジェクト要素 ・object() :新しい基本オブジェクトを返す 引数=なし、 リターン値=オブジェクト ・property() :属性の取得・設定・削除・表示する 引数=属性に対する指定、 リターン値=プロパティ属性 ・reversed() :オブジェクト要素を逆順で返す 引数=オブジェクト、 リターン値=イテレータ ・setattr() :オブジェクト属性を設定する 引数=オブジェクト、名前、値、 リターン値=なし ・slice() :指定インデックスの集合を生成する 引数=数値、 リターン値=オブジェクト ・sorted() :オブジェクト要素を並べ替えて新しいリストを返す 引数=イテラブルオブジェクト/引数、 リターン値=オブジェクト ・tuple() :新しいタプル型オブジェクトを作成する 引数=オブジェクト、 リターン値=タプル型オブジェクト ・type() :オブジェクトの型を返す 引数=オブジェクト、 リターン値=型オブジェクト ・vars() :__dict__ 属性を持つオブジェクトの__dict__ 属性を返す 引数=オブジェクト、 リターン値=__dict__ 属性 ・zip() :イテラブルからイテレータを作成する 引数=イテラブルオブジェクト、 リターン値=イテレータ
クラス処理・コード制御・ファイル操作で用いる組み込み関数は?
主に以下の組み込み関数が、クラス処理・コード制御・ファイル操作で用いられています。
・classmethod() :メソッドをクラスメソッドへ変換する 引数=クラス、 リターン値=クラスメソッド ・dict() :引数から新しい辞書オブジェクトを生成する 引数=オブジェクト要素、 リターン値=辞書オブジェクト ・globals() :現在のグローバルシンボルテーブルを表す辞書を返す 引数=なし、 リターン値=辞書オブジェクト ・super() :スーパー型オブジェクトを返す 引数=型、 リターン値=スーパー型オブジェクト ・callable() :呼び出し可能オブジェクトかどうか判断する 引数=オブジェクト、 リターン値=TrueまたはFalse ・compile() :ソースをコードオブジェクト・ASTオブジェクトにコンパイルする 引数=ソース・引数、 リターン値=コードオブジェクト ・delattr() :属性を削除する 引数=オブジェクト・文字列、 リターン値=なし ・eval() :引数を構文解析し評価する 引数=Python式の文字列、 リターン値=式の評価結果 ・exec() :引数を実行する 引数=Pythonの実行コード、 リターン値=None ・hasattr() :オブジェクトの属性名を確認する 引数=オブジェクト・文字列、 リターン値=TrueまたはFalse ・staticmethod() :メソッドをスタティックメソッドへ変換する 引数=なし、 リターン値=なし ・__import__() :import分から呼び出される 引数=名前/引数、 リターン値=名前束縛による ・open() :指定ファイルをオープンしファイルオブジェクトを返す 引数=ファイル名および引数、 リターン値=ファイルオブジェクト
その他の用途についても、以下の組み込み関数が提供されています。 ・help() :対話型ヘルプシステムを起動する 引数=オブジェクト、 リターン値=ヘルプ表示 ・breakpoint() :デバッガの呼び出し 引数=デバッガ引数、 リターン値=function()の返り値
Pythonの関数を学んで適用範囲を拡大しましょう
Pythonの言語の理解が進んだら、次のステップとして組み込み関数を活用しましょう。組み込み関数はユーザ定義関数を作成する場合にも有効です。関数と処理を組み合わせて必要とされる処理手続きを共通利用できれば、開発効率が向上します。ぜひ色々と試してみましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから