この連載では、Pythonについて色々な形で再学習に取り組んでいます。前回の記事はこちらになります。
前回は、反復可能オブジェクトと、その他のデータ型についてまとめてみました。
今回は、組み込み関数についてです。
関数とは
そもそも関数とは何なんでしょうか。学校の数学では、関数とは何かの入力値から値を返すものです。Pythonで関数とは、入力値に対して何らかのまとまった処理を施し、その結果を返す機能になります。
これまでご紹介した関数の中に、print関数があります。print関数は指定された値を出力するだけで、何も値を返していないように見えます。しかし実際には値を返しています。以下を実行してみましょう。
a = print('print関数が返す値は',end=':') print(a)
結果は以下のようになります。
print関数が返す値は:None
この様に、print関数は「None」という値(以下Noneオブジェクト)を返しています。Pythonでは値がないことを明示するためにNoneオブジェクトを使用します。つまり、値がないという値を返しているということです。
関数は以下のように使用します。値を渡すには関数名の後にカッコでくくって値を記述します。
変数 = 関数(引数1, 引数2, ・・・)
前述の通り、値を返さない、または返してきた値を使わない場合は、変数への代入をせずに直接記述することもあります。
つまり関数の用途は
- 値を受け取ってまとまった処理をする
- 処理結果の値を返す
の2点になります。まとまった処理を関数にしておくと、スクリプトの記述が容易になります。
組み込み関数
Pythonには関数を記述する機能があるのですが、よく使う基本的な関数についてはPython側であらかじめ用意されています。これを「組み込み関数」と呼びます。今まで出てきた組み込み関数を、以下に整理してみます。
- print()
引数で指定した値を出力する関数です。今までも頻繁に出てきたと思います。以下のように記述します。
print(*objects, sep=' ', end='\n')
「*objects」で出力する値を指定します。値はカンマ区切りで複数指定できます。「sep」は複数の値を表示する際に、間に挿入される文字データ(省略時は半角スペース)。「end」は表示終了後に挿入される文字データ(省略時は改行)を指定します。
他にも「file」,「flush」といったオプションの指定があるのですが、ここでは割愛します。
type()
引数で指定した値のobjectの型を返します。id()
引数で指定した値のオブジェクトIDを返します。range()
整数のシーケンス(rangeオブジェクト)を生成します。以下のように記述します。
range([start,] stop [, step])
for文で使用する方法は、すでにご紹介しました。その他に連続した番号のリストを作成する場合に、使ったりします。出力結果を後述するlist関数で変換します。
len()
文字列の文字数や、リストなどのオブジェクトの要素数を返します。str(),list(),tuple(),set(),dict()
オブジェクトを、それぞれ文字列、リスト、タプル、集合、辞書に変換します。
その他の組み込み関数(基本的なもの)
これまで出てこなかった基本的な組み込み関数も、この機会にご紹介しようと思います。
max(),min()
maxは引数に指定された複数の値から、最大のものを返します。イテラブルを指定した場合には、オブジェクト内要素の最大値を返します。複数のイテラブルが指定された場合は、要素の左から順に比較して、大きな要素があったほうのイテラブルを返します。minは逆に最小値を返します。sum()
引数に指定された複数の数値の合計を返します。イテラブルの場合には、要素内の数値を合計した結果を返します。bytes()
0~256の値を示す、bytesオブジェクトを返します。int(),float()
引数で指定された値を変換します。intは整数の値を示すintオブジェクトを、floatは浮動小数点の値を示すfloatオブジェクトを返します。引数には数値、もしくは数値を表す文字列を指定します。input()
文字データの入力を促します。引数には入力時に表示したい説明文(プロンプト)を指定します。abs()
引数で指定された値の絶対値を返します。round()
引数で指定された値を、指定の桁で丸めた値を返します。以下のように記述します。
round(number, ndigits=None)
ndigits(桁指定)が省略されたりNoneの場合には、もっとも近い整数を返します。四捨五入ではなく、偶数丸め(最近接偶数への丸め)処理を行うので注意が必要です。
次回も関数
いかがでしょうか。Pythonには他にもたくさんの組み込み関数がありますので、追々ご紹介していきたいと思います。次回は関数を記述する方法について取り組みます。お楽しみに!!