3が提供する組み込み関数のうち、オブジェクトを生成するもの/簡単な計算を行うもの/文字列に関連するもの/イテラブルに関連するものを紹介する。3には多くの組み込み関数が用意されている。今回と次回に分けて、これらの組み込み関数を幾つかのジャンルに分類して、その構文と簡単な利用法を紹介していく。3の組み込み関数はおおよそ次のようなジャンルに分類できる。今回は上記の分類のうち、最初の4つのジャンルについて見ていくことにする。●オブジェクト生成に関連するものオブジェクトを生成する目的で使用される組み込み関数としては以下の表に挙げるものがある(本稿では、数値と文字列を変換する関数は文字/文字列操作に分類してある)。説明bool指定した引数の値に応じてbool型の値、TrueかFalseを返送するbytearrayミュータブル(変更可能)なbyte配列を返送するbytesイミュータブル(変更不可能)なbyte配列を返送するcomplex「x+yj」形式の複素数を返送するdict指定した引数を基に辞書を作成するfloat指定した引数から浮動小数点数を生成するfrozenset指定したイテラブル(反復可能オブジェクト)を基にイミュータブルな集合を生成するint指定した引数に応じた整数を返送するlist指定した引数を基にリストを生成するmemoryview指定した引数を基にメモリビューオブジェクトを生成するobject無引数で呼び出し、特筆すべき属性を持たないオブジェクトを生成するset指定した引数を基に集合を生成するstr指定した引数を文字列化したものを返送するtuple指定した引数を基にタプルを生成するオブジェクトを生成/返送する組み込み関数これらの組み込み関数は、Pythonの組み込み型のオブジェクトを生成するために使われる(つまり、対応する組み込み型のコンストラクタとなっている)。以下でこれらの関数の構文を示す。以下では省略可能な引数については「[]」で囲んで示す。bool組み込み関数boolの構文を示す。bool([x])組み込み関数bool組み込み関数boolは指定した引数xの値が真と評価される場合はTrueを、偽と評価される場合はFalseを返送する。引数に空のリスト、空文字列などを渡すとその戻り値はFalseとなる。引数を指定しなかった場合はFalseが返送される。bytearray/bytes組み込み関数bytearray/bytesの構文を以下に示す。これらの構文の引数の意味は同じで、前者はミュータブル(変更可能)なbyte配列を、後者はイミュータブル(変更不可能)なbyte配列を生成するものだ。ここでいう「byte配列」とは各要素が0〜255の範囲の整数値を取る配列のことで、バイナリデータを扱うような場合に使用する。errors]]])組み込み関数bytearray/bytes引数を指定しない場合には空のbyte配列が返送される。標準ライブラリ」の「bytearray」の説明を参照のこと)。引数sourceに文字列を渡した場合には、そのエンコード方式を引数encodingに渡す必要がある。オプションで、エンコード時のエラー処理方法を引数errorsに渡してもよい(引数errorsに渡せる値についてはPythonのドキュメント「str.encode」を参照)。この場合は、引数sourceに渡した文字列が、str.encodeメソッドを使用して、引数encoding(および引数errors)に渡した方法でエンコードしたものが結果のbyte配列となる。以下に例を示す(なお、本フォーラムではUnicodeのコードポイント「\u2014」で示されるダッシュ記号を表記できないため、以下のサンプルでは「\u2014」として表記している)。byte配列を文字列化するにはdecodeメソッドを使用できる。整数を渡した場合は、そのサイズのbyte配列が返される(全ての要素の値は'\x00'となる)。イテラブルを渡した場合は、その要素の値を基にbyte配列が作成される(イテラブルの要素は0〜255の範囲の整数値である必要がある)。以下に簡単な例を示す。b'world'整数/イテラブルを引数sourceに指定した例complex組み込み関数complexは複素数を作成するのに使用する。構文は次のようになる。引数realには数値か文字列を指定する。引数realが数値の場合、それは複素数の実数部を、引数imagが虚数部を示す。引数realが文字列の場合、その文字列が複素数全体を表すものとして扱われる。このときには「1+2j」のように虚数部にはサフィックスとして「j」を付加する必要がある。引数を指定しなかった場合には「0j」が生成される。2+1j組み込み関数complexの使用例dict組み込み関数dictは、指定した引数を基に辞書を作成する。**kwargs)組み込み関数dictの構文(1)ここでいう「**kwargs」とは、複数のキーワード引数をまとめて1つの辞書として扱うための記法だ。簡単には、上の構文は下のように読み替えてもよい。......」といったようにキーワード引数形式で辞書の要素を指定していく。次の構文はその前に辞書オブジェクトdictobj(正確にはマッピングオブジェクト。Pythonでは標準のマッピングオブジェクトは辞書オブジェクトのみ)と最初の構文と同様なキーワード形式での要素の指定を行う。最後の構文では引数iterable(イテラブルなオブジェクト)を指定するが、この場合、イテラブルの各要素が「2つの要素を持っている」必要がある。200}組み込み関数dictの使用例float組み込み関数floatは指定した引数から浮動小数点数を生成する。引数xには数値もしくは文字列を指定する。文字列を指定する場合、それは10進数値として扱われる。Number」を意味する'NaN'(大文字小文字は無視)も指定可能。nan組み込み関数floatの使用例frozenset/set組み込み関数frozenset/setは指定したイテラブル(反復可能オブジェクト)を基にイミュータブルな集合を生成する。前者はイミュータブルな集合を、後者はミュータブルな集合を生成する。引数iterableを指定しない場合、空のfrozenset/setが生成される(例は省略する)。int組み込み関数intは指定した引数に応じた整数を返送する。base=10)組み込み関数intの構文1つ目の構文を見ると分かる通り、引数なしでこれを呼び出すと整数0が返される。2つ目の構文では、引数xに文字列(もしくはbyte配列)を、引数baseには引数xで表される値の基数を指定する(引数xの省略時には基数は10となる)。変数i2には基数を2としたときの「1111」の値を、変数i3には基数を10としたときの「1111」の値が代入されていることに注目しよう。list組み込み関数listは指定した引数を基にリストを生成する。引数iterableを省略すると、空のリストが生成される。引数iterableにはイテラブル(組み込み関数rangeの戻り値、タプル、リスト、辞書など、反復可能なオブジェクト)を渡す。2)]組み込み関数listの使用例memoryview組み込み関数memoryviewは指定した引数を基にメモリビューオブジェクトを生成する。メモリビューオブジェクトとは、byte配列などが内部で使用しているメモリ領域(バッファー)へのアクセスするためのラッパーとなり、それらのデータへの直接的なアクセスを行えるようにするものだ。Abcdefg組み込み関数memoeryviewの使用例メモリビューオブジェクトは、それが参照しているメモリが変更不可能であれば、その要素を変更はできない。逆に変更可能であれば、メモリを直接書き換えられる。上のサンプルの変数b2は変更可能なbyte配列を参照しており、そのメモリビューを参照している変数m2を介して、その内容を書き換えている。object組み込み関数objectは無引数で呼び出し、特筆すべき属性を持たないオブジェクトを生成する。このオブジェクトには後から任意の属性を付加することはできない(例は省略する)。str組み込み関数strの構文を以下に示す。組み込み関数strは引数に指定したオブジェクトを文字列化する。「オブジェクトのインフォーマルな表現」(オブジェクトを印字可能な文字としたもの)を返す。これに対して、組み込み関数reprは「オブジェクトのオフィシャルな表現」を返す。組み込み関数strを呼び出すと、最終的にそのオブジェクトが持つ__str__メソッドが呼び出されるが、これが存在しない場合には__repr__メソッドが呼び出される(全ての型の基底クラスであるobjectクラスの__str__メソッドの実装がobject.__repr__メソッドを呼び出すようになっている)。式のようなものであるべき」という点だ。厳密に文字列表現には(組み込み関数reprを介して呼び出される)__repr__メソッドを、簡易的な文字列表現には(組み込み関数strを介して呼び出される)__str__メソッドを使用する(なお、組み込み関数reprについては次回取り上げる)。組み込み関数strには3引数のバージョンもあるが、これについては説明を割愛する。tuple組み込み関数tupleは指定した引数を基にタプルを生成する。引数iterableを省略すると、空のタプルが作成される。次ページでは数値計算に関連するものを取り上げる。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。