基本情報ではじめる Python (9) import 文とライブラリの活用

error
この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。
この連載では、プログラミングの入門者を対象として、基本情報技術者試験の出題範囲にテーマを絞って、 Python の言語構文とプログラムの読み方を説明します。
今回のテーマは、 import 文とライブラリの活用です。このテーマをマスターすれば、試験の出題範囲をほぼ網羅できたことになります。
-
(10)ライブラリの活用
問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを利用し,プログラムを作成する。
修得項目import 文,モジュール,パッケージ など
モジュールと import 文
Python には、様々なプログラムから利用できる関数やクラスが数多く用意されていて、それらを「ライブラリ」と呼びます。
それらの中で、一般的な Python の開発環境をインストールすれば、すぐに利用できるものを「標準ライブラリ」と呼び、必要に応じて後から追加して利用するものを「外部ライブラリ」と呼びます。
ライブラリの実体は、関数やクラスなどが記述されたファイルです。このようなファイルを「モジュール」と呼びます。
前回(第 8 回)で説明した「組み込み関数」は、何の設定もせずに利用できましたが、標準ライブラリや外部ライブラリを利用するには、 import 文を使ってモジュールをインポートする(モジュールを利用することを設定する)必要があります。
標準ライブラリである math モジュールを例にして、 import 文の使い方を説明しましょう。 math モジュールは、数学関連の様々な関数を提供します。ここでは、引数の平方根を返す sqrt 関数を使います。
math モジュールを利用するには、プログラムの先頭で import math
を実行します。これによって、 math.関数名(引数)
という構文で、 math モジュールの関数を呼び出せます。
図 1 では、 import math
を実行してから、 math.sqrt(2)
を呼び出して、 2 の平方根を求めています。
この記事では、 Python の対話モードでプログラムを実行します。説明のために、プログラムの中にコメントを記入した部分がありますが、実際にプログラムを作って動作を確認するときには、これらのコメントは不要です。
>>> import math # mathモジュールをインポートする
>>> math.sqrt(2) # mathモジュールのsqrt関数を呼び出す
1.4142135623730951 # 関数の戻り値が表示される
import 文のバリエーション
import 文の使い方には、いくつかのバリエーションがあります。先ほどの例では、 import math
で math モジュールをインポートして、 math.sqrt(2)
という構文で sqrt 関数を呼び出しました。
もしも、関数名の前に「 math 」を付けることを面倒だと感じたら、
from math import sqrt
というバリエーションを使ってください。これは、
math モジュールから sqrt をインポートする
という意味です。これによって、関数名の前に「 math 」を付けずに sqrt(2)
という構文で sqrt 関数を呼び出せます。
図 2 に例を示します。
>>> from math import sqrt # mathモジュールからsqrt関数をインポートする
>>> sqrt(2) # sqrt関数を呼び出す
1.4142135623730951 # 関数の戻り値が表示される
モジュールの中には、「 matplotlib.pyplot 」のように長い名前になっているものもあります。もしも、長いモジュール名を使うことを面倒だと感じたら、
import matplotlib.pyplot as plt
というバリエーションを使ってください。これは、
matplotlib.pyplot モジュールをインポートして plt という別名を付ける
という意味です。これによって、 matplotlib.pyplot という長いモジュール名を、 plt という短い別名で使えるようになります。プログラムの例は、この記事の最後に示します。
パッケージ
ここで、再び「 matplotlib.pyplot 」というモジュール名に注目してください。
「 matplotlib 」と「 pyplot 」が、ドット( . )でつながれています。これは、
matplotlib パッケージの pyplot モジュール
という意味です。「パッケージ」とは、複数のモジュールをまとめたものです。 Windows では、パッケージは、複数のファイル(モジュール)を格納したディレクトリです。
ライブラリの中には、パッケージの形で提供されるものもあります。これは、複数のモジュールを、まとめて提供するということです。
matplotlib パッケージは、グラフの描画に関する複数のモジュールを、まとめて提供します。図 3 に示したように、 matplotlib というディレクトリの中に、 pyplot.py, quiver.py, rcsetup.py など、複数のファイルがあるのです(それぞれのモジュールは、拡張子が .py となったファイルですが、インポートするときには、拡張子を省略します)。

パッケージの中にあるモジュールをインポートするときには、 matplotlib.pyplot
のように「パッケージ名.モジュール名」という構文でモジュールを指定します。
matplotlib.pyplot を利用したサンプルプログラム
基本情報技術者試験のシラバスには、標準ライブラリや外部ライブラリの具体的な名前が明記されていません。したがって、何らかのライブラリを利用したプログラムが出題される場合には、モジュールの機能の説明が示されるはずです。
情報処理推進機構 ( IPA ) が公開している Python のサンプル問題(現時点で、公式に公開されているのは、このサンプル問題だけです)では、 matplotlib.pyplot モジュールを利用したプログラムが出題されています。
モジュールの機能は、図 4 に示したようにコメントとして示されています。
import matplotlib.pyplot as plt # グラフ描画の外部ライブラリ
:
plt.xlim(-320, 320) # x軸の表示範囲を設定
plt.ylim(-240, 240) # y軸の表示範囲を設定
:
# (x1, y1)と(x2, y2)を結ぶ線分を描画
plt.plot([x1, x2], [y1, y2], color='black', linewidth=2)
:
# 描画結果を表示
plt.show()
実際に、 matplotlib.pyplot モジュールを使ってみましょう。
図 5 では、
(-300, -200),
(0, 200),
(300, -200),
(-300, -200),
という 4 つの点を結んだ線分で、三角形を描画しています(ここでは、サンプル問題のプログラムとは違うコメントを記入しています)。
# matplotlib.pyplotをインポートしてpltという別名をつける
import matplotlib.pyplot as plt
# グラフのx軸とy軸の表示範囲を設定する
plt.xlim(-320, 320)
plt.ylim(-240, 240)
# x座標のリストとy座標のリストの点を結ぶ線分を描画する(画面には表示されない)
plt.plot([-300, 0, 300, -300], [-200, 200, -200, -200], color='black', linewidth=2)
# 描画の内容を画面に表示する
plt.show()
plt.plot の 1 つ目の引数には、点の x 座標のリストを指定し、 2 つ目の引数には点の y 座標のリストを指定します。
図 5 のプログラムの実行結果の例を図 6 に示します。

matplotlib.pyplot モジュールを利用すると、このように短いプログラムでビジュアルにグラフの描画ができます。実際の試験問題でも、 matplotlib.pyplot モジュールが使われる可能性は、大いにあるでしょう。
第 1 回から第 9 回(今回)までの連載で、基本情報技術者試験の 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の思考術」(ソフトバンククリエイティブ) など多数