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

error
この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。
この連載では、プログラミングの入門者を対象として、基本情報技術者試験の出題範囲にテーマを絞って、 Python の言語構文とプログラムの読み方を説明します。
今回のテーマは、 Python の組み込み関数です。簡単なサンプルプログラムの動作を確認することで、試験のシラバスに示された組み込み関数の種類と機能を、一気に理解しましょう。
-
(6)組込み関数
型、リスト、文字列の入出力、ファイル操作などに関する組込み関数の利用場面を理解し、プログラムを作成する。
修得項目int, float, str, list, range, enumerate, zip, len, print, input, open など
もくじ
Python の組み込み関数の種類
Python のプログラミング環境には、膨大な数の関数が用意されています。それらの中で、インポート( import 文を使って使用を宣言すること)なしですぐに使える関数を「組み込み関数」と呼びます。
図 1 は、 Python の組み込み関数の一覧です。赤色で示した関数は、試験のシラバスに示されているものです。これらを一気に理解することが、今回のテーマです。
A abs() aiter() all() any() anext() ascii() B C D |
E enumerate() eval() exec() F G H I |
L len() list() locals() M N O P |
R range() repr() reversed() round() S T V Z その他 |
組み込み関数の機能を理解するには、実際に使ってみることが一番です。
これ以降では、 Python の対話モードで、組み込み関数を使った簡単なサンプルプログラムを動作させます。プログラムの動作結果を見て、関数の名前(名前の意味も説明します)と機能を対応付けてください。
プログラムには、説明の都合でコメント( # で始まる文字列)を付けている部分がありますが、実際にプログラムを作って動作させるときには、これらのコメントは不要です。
int 関数
int 関数は、 integer (整数)という意味です。 int 関数は、引数で指定された数字列(文字列)を整数に変換して返します。
図 2 は、変数 s1 と s2 に適当な数字列を代入し、それらを int 関数で整数に変換して加算するプログラムです。
>>> s1 = "123" # 変数s1に適当な数字列を代入する
>>> s2 = "456" # 変数s2に適当な数字列を代入する
>>> int(s1) + int(s2) # 変数s1とs2の内容を整数に変換して加算する
579 # 加算結果が得られる
このように、 int 関数は、数字列を整数に変換して演算する場面で、よく使われます。
float 関数
float 関数は、 floating point number (浮動小数点数)という意味です。 float 関数は、引数で指定された数字列(文字列)を浮動小数点数に変換して返します。
図 3 は、変数 s1 と s2 に適当な数字列を代入し、それらを float 関数で浮動小数点数に変換して加算するプログラムです。
>>> 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 関数で文字列に変換し、 “円周率 = ” という文字列に連結するプログラムです。
>>> pi = 3.14 # 変数piに数値を代入する
>>> "円周率 = " + str(pi) # 数値を文字列に変換して連結する
'円周率 = 3.14' # 連結した結果が表示される
このように、 str 関数は、数値を文字列に変換して他の文字列に連結する場面で、よく使われます。
list 関数
list 関数は、 list ( Python のリストとは C 言語や Java などの配列に相当するもの)という意味です。 list 関数は、引数で指定されたオブジェクトをリストに変換して返します。
図 5 は、 “hello” という文字列を list 関数でリストに変換するプログラムです。文字列を構成する 1 つの文字が要素となったリストが得られます。
>>> list("hello") # 文字列をリストに変換する
['h', 'e', 'l', 'l', 'o'] # リストの内容が表示される
range 関数
range 関数は、 range(範囲)という意味です。 range 関数は、主に for 文の in の後で使われ、引数で指定された範囲の整数列を順番に返します。
図 6 は、 range 関数を使って得られた 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"]
というリストの要素に添字を割り当てた結果を表示するプログラムです。
>>> 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 つのリストの要素をタプルに閉じて取り出すプログラムです。
>>> 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 は、リストと文字列の要素数を表示するプログラムです。
>>> len([100, 200, 300]) # リストの要素数を得る
3 # 要素数が表示される
>>> len("hello") # 文字列の要素数を得る
5 # 要素数が表示される
print 関数
print 関数は、 print (印刷する)という意味です。 print 関数は、引数で指定されたデータを画面に表示します。
引数には、カンマで区切って複数のデータを指定することもできます。
引数 sep に、データを区切る文字(デフォルトは、空白文字)を指定することもできます。
引数 end に、末尾に表示する文字(デフォルトは、改行文字)を指定することもできます。
図 10 は、変数 a, b, c の値をカンマで区切って画面に表示するプログラムです。 Python の対話モードでは、 print 関数を使わなくても、変数の値を入力して [Enter] キーを押すだけで、変数の値が画面に表示されます。 print 関数は、主に Python の実行モードで使われます。
>>> 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 に代入するプログラムです。
>>> 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 に空文字列を指定しているのは、ファイルから読み出した文字列の末尾に改行文字があるので、表示する際に改行が重複しないようにするためです。
>>> file_object = open("sample.txt", "rt") # ファイルを開く
>>> for s in file_object: # ファイルから1行ずつ読み出す
... print(s, end="") # 画面に表示する
... # [Enter]キーだけ押す
apple # ファイルの内容が表示される
orange
grape
>>> file_object.close() # ファイルを閉じる
JupyterLab をご利用の場合は、上記コードを実行するにあたり sample.txt のファイルパスがわかりくく、うまく実行できないかも知れません。その場合は以下のようにすると動作します。
なお、ファイルアップロードはメニュー下のボタンから出来ます。

>>> 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 関連タグ
免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
※独習ゼミは、受験ナビ運営のSEプラスによる試験対策eラーニングです。

基本情報ではじめる Python 最終回 試験問題レベルにチャレンジ
update
基本情報ではじめる Python (9) import 文とライブラリの活用
update
基本情報ではじめる Python (8) 組み込み関数
update
基本情報ではじめる Python (7) generator と yield 文
update
基本情報ではじめる Python (6) ラムダ式 って何? どんな用途で使うの?
update
基本情報ではじめる Python (5) オブジェクト指向
update
基本情報ではじめる Python (4) if ~ else と while / for
update
基本情報ではじめる Python (3) 引数 ~ Python の関数の引数には様々な形式がある
update
基本情報ではじめる Python (2) 配列 ~ リスト、タプル、文字列、集合、辞書の特徴
update
基本情報ではじめる Python (1) 基本構文 ~ 擬似言語と比べて覚える
update
『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数