基本情報ではじめる Python (8) 組み込み関数


2021-12-09 更新

error

この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。

この連載では、プログラミングの入門者を対象として、基本情報技術者試験の出題範囲にテーマを絞って、 Python の言語構文とプログラムの読み方を説明します。

今回のテーマは、 Python の組み込み関数です。簡単なサンプルプログラムの動作を確認することで、試験のシラバスに示された組み込み関数の種類と機能を、一気に理解しましょう。

  • (6)組込み関数

     型、リスト、文字列の入出力、ファイル操作などに関する組込み関数の利用場面を理解し、プログラムを作成する。

    修得項目

    int, float, str, list, range, enumerate, zip, len, print, input, open など

出典基本情報技術者試験シラバス Ver.7.2 より

Python の組み込み関数の種類

Python のプログラミング環境には、膨大な数の関数が用意されています。それらの中で、インポート( import 文を使って使用を宣言すること)なしですぐに使える関数を「組み込み関数」と呼びます

図 1 は、 Python の組み込み関数の一覧です。赤色で示した関数は、試験のシラバスに示されているものです。これらを一気に理解することが、今回のテーマです。

info編集部注: スマートフォンでご覧の際は、表は横スクロールすると全文をご覧になれます
A
abs()
aiter()
all()
any()
anext()
ascii()

B
bin()
bool()
breakpoint()
bytearray()
bytes()

C
callable()
chr()
classmethod()
compile()
complex()

D
delattr()
dict()
dir()
divmod()

E
enumerate()
eval()
exec()

F
filter()
float()
format()
frozenset()

G
getattr()
globals()

H
hasattr()
hash()
help()
hex()

I
id()
input()
int()
isinstance()
issubclass()
iter()

L
len()
list()
locals()

M
map()
max()
memoryview()
min()

N
next()

O
object()
oct()
open()
ord()

P
pow()
print()
property()

R
range()
repr()
reversed()
round()

S
set()
setattr()
slice()
sorted()
staticmethod()
str()
sum()
super()

T
tuple()
type()

V
vars()

Z
zip()

その他
__import__()

組み込み関数の機能を理解するには、実際に使ってみることが一番です。

これ以降では、 Python の対話モードで、組み込み関数を使った簡単なサンプルプログラムを動作させます。プログラムの動作結果を見て、関数の名前(名前の意味も説明します)と機能を対応付けてください。

プログラムには、説明の都合でコメント( # で始まる文字列)を付けている部分がありますが、実際にプログラムを作って動作させるときには、これらのコメントは不要です。

infoお手元に Python の環境がない場合、ブラウザからオンラインで実行できる「 JupyterLab 」で、文中のコードをお試しください。 play_arrow ボタンを押すか [ Shift + Enter ] で実行できます

int 関数

int 関数は、 integer (整数)という意味です。 int 関数は、引数で指定された数字列(文字列)を整数に変換して返します。

図 2 は、変数 s1 と s2 に適当な数字列を代入し、それらを int 関数で整数に変換して加算するプログラムです。

info編集部注: スマートフォンでご覧の際は、プログラムは横スクロールすると全文をご覧になれます
code図 2  数字列を整数に変換して加算するプログラム
>>> s1 = "123"		    # 変数s1に適当な数字列を代入する
>>> s2 = "456"		    # 変数s2に適当な数字列を代入する
>>> int(s1) + int(s2)	# 変数s1とs2の内容を整数に変換して加算する
579                     # 加算結果が得られる

このように、 int 関数は、数字列を整数に変換して演算する場面で、よく使われます。

float 関数

float 関数は、 floating point number (浮動小数点数)という意味です。 float 関数は、引数で指定された数字列(文字列)を浮動小数点数に変換して返します。

図 3 は、変数 s1 と s2 に適当な数字列を代入し、それらを float 関数で浮動小数点数に変換して加算するプログラムです。

code図 3  数字列を浮動小数点数に変換して加算するプログラム
>>> s1 = "1.23"             # 変数s1に適当な数字列を代入する
>>> s2 = "4.56"             # 変数s2に適当な数字列を代入する
>>> float(s1) + float(s2)   # 変数s1とs2の内容を浮動小数点数に変換して加算する
5.789999999999999           # 加算結果が得られる

このように、 float 関数は、数字列を浮動小数点数に変換して演算する場面で、よく使われます。

str 関数

str 関数は、 string (文字列)という意味です。 str 関数は、引数で指定されたオブジェクトを文字列に変換して返します。

図 4 は、変数 pi に代入された 3.14 という数値を str 関数で文字列に変換し、 “円周率 = ” という文字列に連結するプログラムです。

code図 4  数値を文字列に変換して他の文字列に連結するプログラム
>>> pi = 3.14               # 変数piに数値を代入する
>>> "円周率 = " + str(pi)	# 数値を文字列に変換して連結する
'円周率 = 3.14'             # 連結した結果が表示される

このように、 str 関数は、数値を文字列に変換して他の文字列に連結する場面で、よく使われます。

list 関数

list 関数は、 list ( Python のリストとは C 言語や Java などの配列に相当するもの)という意味です。 list 関数は、引数で指定されたオブジェクトをリストに変換して返します。

図 5 は、 “hello” という文字列を list 関数でリストに変換するプログラムです。文字列を構成する 1 つの文字が要素となったリストが得られます。

code図 5  文字列をリストに変換するプログラム
>>> list("hello")		    # 文字列をリストに変換する
['h', 'e', 'l', 'l', 'o']	# リストの内容が表示される

range 関数

range 関数は、 range(範囲)という意味です。 range 関数は、主に for 文の in の後で使われ、引数で指定された範囲の整数列を順番に返します

図 6 は、 range 関数を使って得られた 0 から 10 未満までの整数列を表示するプログラムです。

code図 6  0 から 10 未満までの整数列を表示するプログラム
>>> for i in range(0, 10):	# for文のinの後でrange関数を使う
...     print(i)            # 変数iに得られた値を表示する
...                         # [Enter]キーだけを押す
0                           # 0から10未満の値が表示される
1
2
3
4
5
6
7
8
9

enumerate 関数

enumerate 関数は、 enumerate (数え上げる、列挙する)という意味です。

enumerate 関数は、引数で指定されたイテラブル(リスト、タプル、文字列、など)の要素に、添字を割り当てます。 for 文の in の後でenumerate 関数を使うと、添字と要素が順番に取り出されます。

図 7 は、 ["apple", "orange", "grape"] というリストの要素に添字を割り当てた結果を表示するプログラムです。

code図 7  文字列のリストの要素に添字を割り当てた結果を表示するプログラム
>>> for i, s in enumerate(["apple", "orange", "grape"]): # for文のinの後でenumerate関数を使う
...     print(i, s)	                                      # 変数iに得られた添字と、変数sに得られた要素を表示する
...                                                       # [Enter]キーだけを押す
0 apple                                                   # 添字と要素が表示される
1 orange
2 grape

zip 関数

zip 関数は、 zip (ジッパーで閉じる)という意味です。

zip 関数は、引数で指定された複数のイテラブル(リスト、タプル、文字列、など)から要素を取り出し、それらをタプルにまとめます(タプルに閉じます)。 for 文の in の後で zip 関数を使うと、 zip 関数の引数に指定された複数のイテラブルから順番に要素が取り出され、それらがタプルに連結されます。

図 8 は、 ["apple", "orange", "grape"] および [100, 200, 300] という 2 つのリストの要素をタプルに閉じて取り出すプログラムです。

code図 8   2 つのリストの要素をタプルに閉じて取り出すプログラム
>>> for t in zip(["apple", "orange", "grape"], [100, 200, 300]):  # for文のinの後でzip関数を使う
...     print(t)                                                  # タプルに閉じられた結果を表示する
...                                                               # [Ener]キーだけを押す
('apple', 100)                                                    # タプルに閉じられた要素が表示される
('orange', 200)
('grape', 300)

len 関数

len 関数は、 length (長さ)という意味です。 len 関数は、引数で指定されたイテラブル(リスト、タプル、文字列、など)の要素数を返します

図 9 は、リストと文字列の要素数を表示するプログラムです。

code図 9  リストと文字列の要素数を表示するプログラム
>>> len([100, 200, 300])	# リストの要素数を得る
3                           # 要素数が表示される
>>> len("hello")	      	# 文字列の要素数を得る
5                           # 要素数が表示される

print 関数

print 関数は、 print (印刷する)という意味です。 print 関数は、引数で指定されたデータを画面に表示します。

引数には、カンマで区切って複数のデータを指定することもできます。
引数 sep に、データを区切る文字(デフォルトは、空白文字)を指定することもできます。
引数 end に、末尾に表示する文字(デフォルトは、改行文字)を指定することもできます。

図 10 は、変数 a, b, c の値をカンマで区切って画面に表示するプログラムです。 Python の対話モードでは、 print 関数を使わなくても、変数の値を入力して [Enter] キーを押すだけで、変数の値が画面に表示されます。 print 関数は、主に Python の実行モードで使われます。

code図 10  変数 a の値を画面に表示するプログラム
>>> a = 123			            # 変数aに適当な値を代入する
>>> b = 456			            # 変数bに適当な値を代入する
>>> c = 789			            # 変数cに適当な値を代入する
>>> print(a, b, c, sep=",")	    # 区切り文字にカンマを指定する
123,456,789			            # 変数a、b、cの値がカンマで区切られて表示される

input 関数

input 関数は、 input (入力する)という意味です。 input 関数は、キーボード入力された文字列を返します。 input 関数の引数に文字列を指定すると、それがプロンプト(入力を促す文字列)として表示された後でキー入力が行われます。

図11は、 "s -->" というプロンプトを表示した後でキー入力を行い、それを変数 s に代入するプログラムです。

code図 11  キー入力を変数に代入するプログラム
>>> s = input("s -->")	# キーボード入力を変数sに代入する
s -->hello              # 適当な文字列を入力する
>>> s                   # 変数sの内容を確認する
'hello'                 # キー入力した文字列が格納されている

open 関数

open 関数は、 open (開く)という意味です。 open 関数は、引数で指定されたファイルを開き、そのファイルを操作するためのファイルオブジェクトを返します

図 12 は、 sample.txt というテキストファイルの内容(果物の名前を 3 つ記述した内容で作成してあります)を読み出して、画面に表示するプログラムです。

open 関数の第 1 引数でファイル名を指定し、第 2 引数でモードを指定します。"rt" というモードは、 read text (テキストファイルの読み出し)を意味しています。

open 関数が返すファイルオブジェクトには、イテレータの機能(データを順番に取り出す機能)があります。そのため、 for 文の in の後にファイルオブジェクトを指定すると、テキストファイルから 1 行ずつ文字列を読み出せます。

ファイルの操作が終わったら、ファイルオブジェクトが持つ close メソッドでファイルを閉じます。 print 関数の引数 end に空文字列を指定しているのは、ファイルから読み出した文字列の末尾に改行文字があるので、表示する際に改行が重複しないようにするためです。

code図 12  テキストファイルの内容を読み出して画面に表示するプログラム

>>> file_object = open("sample.txt", "rt")	# ファイルを開く
>>> for s in file_object:                   # ファイルから1行ずつ読み出す
...     print(s, end="")			        # 画面に表示する
...                                         # [Enter]キーだけ押す
apple                                       # ファイルの内容が表示される
orange
grape
>>> file_object.close()				        # ファイルを閉じる
info編集部注
JupyterLab をご利用の場合は、上記コードを実行するにあたり sample.txt のファイルパスがわかりくく、うまく実行できないかも知れません。その場合は以下のようにすると動作します。
なお、ファイルアップロードはメニュー下のボタンから出来ます。


code図 13  図 12 を JupyterLab で実行するときのスニペット
>>> import os                                                 # os のインターフェイスを扱うライブラリをインポート
>>> os.path.expanduser("~")                                   # ホームディレクトリのパスを表示
'/home/jovyan'                                                # 出力が異なることもあります。編集部が実行した際は '/home/jovyan' というパスが出力されました
>>> file_object = open("/home/jovyan/demo/sample.txt", "rt")  # 得られたパスに /demo/sample.txt を追加
# 以下は同じコード

IT 業界には、様々なプログラミング言語がありますが、それぞれの言語が、その言語独自の組み込み関数(または、それに相当するもの)を備えています。組み込み関数を使うことで、そのプログラミング言語らしさが表現されます。

したがって、試験問題の Python のプログラムでは、 Python の組み込み関数が多用されるはずです。組み込み関数の種類と機能を、しっかりと理解してください。

それでは、またお会いしましょう!

 

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『基本情報ではじめるPython』の連載一覧 label 著者