import文とは?
import文は、他のモジュールやパッケージの機能を自分のプログラムで使用するために読み込む文です。
例えば、電卓アプリを作るとき、「足し算」「引き算」の機能を一から作るのは大変ですよね。
しかし、すでに用意されている数学計算の機能があれば、それを借りることができたらとても楽になります。
これと同じように、プログラムでも既に作られている便利な機能を借りてくるのがimport文の役割です。
import文の特徴
- 他のモジュールやパッケージの機能を現在のプログラムで使用できる
- Pythonには標準ライブラリとして多くの便利なモジュールが用意されている
- 外部のサードパーティ製パッケージや自分で作成したモジュールも読み込める
- 複数の記述方法があり、用途に応じて適切な方法を選択できる
- 通常、ファイルの先頭部分に記述する
既存の機能を再利用することで、開発効率が大幅に向上するという大きなメリットがあるので、ぜひマスターしましょう。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
基本構文
import文には書き方がいくつかあります。
一番基本的な形は「import モジュール名」で、モジュール全体を読み込ませる方法です。
特定の関数やクラスのみを使用したい場合は「from モジュール名 import 関数名」を使用します。モジュールに別名を付けたい場合は「import モジュール名 as 別名」という書き方もできます。
実際のコードで、イメージを掴みましょう。
出力結果(例):
現在の時刻にアクティブなフクロウ: 14時(UTC)
このプログラムでは、まずimport datetimeで日時を扱うためのdatetimeモジュールを読み込んでいます。次に、datetime.datetime.now()で現在の日時を取得し、current_timeという変数に保存します。
current_time.hourで現在の時刻(時間部分)を取り出し、フクロウの活動時間として表示しています。
次は、from文を使用して特定の関数のみをインポートする方法の例です。
この方法により、関数を直接呼び出すことができ、コードがより簡潔になります。
出力結果(例):
選ばれた動物はキリンです
このプログラムでは、from random import choiceでrandomモジュールからchoice関数だけを読み込んでいます。
choice関数はリストからランダムに1つの要素を選ぶ関数で、この場合は動物のリストからランダムに1匹を選んで表示します。
また、モジュールには別名を付けることができます。
出力結果:
サークルにいるヒツジの面積: 78.54
import math as mでmathモジュールに「m」という短い別名を付けて読み込んでいます。これにより、m.piのように短い名前でモジュールの機能を使うことができます。
ちなみに、{area:.2f}の:.2fは、小数点以下の表示桁数を指定する書き方です。
- :.1f → 小数点以下1桁まで表示(例:78.5)
- :.2f → 小数点以下2桁まで表示(例:78.54)
- :.0f → 小数点以下なし、四捨五入(例:79)
計算結果が長い小数になった場合でも、必要な桁数だけ表示できるので便利です。
数学的には綺麗な数になる計算でも、コンピュータは内部で数値を2進数で表現するため、10進数の小数を正確に表現できない場合があります。
そのような問題に対処するときにも有用なので、ぜひ覚えておきましょう。
実用例
ここからは、import文を使ったコード例を見ていきましょう。どの例も身近な動物を題材にしているので、イメージしやすいはずです。
また、そのプログラムは日時の取得、ランダムな選択、数学計算など、実務でも使えるような処理です。
このような例を通じて、「既に用意されている便利な機能を借りてきて使う」というimport文の基本的な使い方を覚えていきましょう。
import文を使いこなせるようになると、自分で一から作らなくても、多くの便利な機能を使ってプログラムを作れるようになります。
日時情報の取得
datetimeモジュールを使用して現在の日時情報を取得し、動物の活動時間を表示する処理のコード例です。
日時処理はプログラムでよく使用される機能で、ログ記録やスケジュール管理で重要な役割を果たします。
出力結果(例):
14時(UTC)のニワトリが元気です
import datetimeでdatetimeモジュールを読み込み、datetime.datetime.now()で現在の日時を取得してnowに保存します。now.hourで時間部分だけを取り出してhourに保存します。
6時より前なら夜行性のフクロウ、それ以外なら昼行性のニワトリに関するメッセージが表示されます。
ランダムな動物選択
randomモジュールを使用してリストからランダムに動物を選ぶ処理です。 ゲームアプリや抽選システムでよく使われる、基本的なランダム選択の方法です。
出力結果(例):
今日の主役はトラ、番号は7番
import randomでrandomモジュールを読み込んでいます。random.choice(zoo_animals)で動物のリストからランダムに1匹を選び、random.randint(1, 10)で1から10までのランダムな数字を生成します。
選ばれた動物と番号を組み合わせて、今日の主役として表示する流れです。
ぜひ、「実行する」ボタンを何度も押してランダムに表示されることを確認してください。
数学計算処理
mathモジュールを使用して円の面積を計算し、動物の生息域を表現するプログラムを見てみましょう。
計算アプリや地図アプリでよく使われる、基本的な数学計算の方法です。
出力結果:
クマのテリトリー面積: 314.2
住めるウサギの数: 62匹
import mathでmathモジュールを読み込みます。math.piで円周率を使って円の面積を計算し、math.floor()で小数点以下を切り捨てて整数にしています。
また、先述した:.1fという書き方が活用されているのも確認できますね。
ちなみに、math.floor()は「床関数」と呼ばれる関数で、小数点以下を切り捨てて整数にしてくれます。
より小さい整数にするため、-2.3といった数字の場合は-3になることに注意です。
ファイル操作システム
ここでは、コンピューターのシステム情報を取得して、動物のデータファイル管理をシミュレーションするプログラムの例を見てみましょう。
ファイル管理アプリやデータ保存アプリでよく使われる、基本的なシステム操作の方法です。
出力結果:
ペンギンのデータファイル: animal_data.txt
保存場所の長さ: 10文字
まず、import osでosモジュールを読み込んでいます。os.getcwd()で現在のディレクトリ(フォルダ)の場所を取得し、os.path.join()でファイルのパスを作成します。
最後に、ペンギンのデータファイル名と、保存場所の文字数を表示するという流れです。
JSON形式データ処理
jsonモジュールを使用して動物データをJSON形式で処理する例です。
JSON形式は、Web APIとの連携やデータ交換において、最も広く使用される標準的なデータ形式です。
出力結果:
JSON化: {"name": "コアラ", "age": 5, "habitat": "オーストラリア"}
動物名: コアラ
import jsonでjsonモジュールを読み込みます。json.dumps()で動物のデータを文字列に変換し、json.loads()でその文字列をデータに戻します。
見た目として変化は見られませんが、
- json.dumps()でPythonの辞書→JSON文字列に変換
- json.loads()でJSON文字列→Pythonの辞書に戻す元の動物データを復元
という処理が行われています。
実用的な意味としては、下記のような点が挙げられます。
- ファイル保存:辞書は直接テキストファイルに保存できないが、JSON文字列なら保存できる
- 通信:API通信では文字列形式(JSON)でデータをやり取り
- データ交換:他の言語やシステムとデータを共有するときに使用する
正規表現パターン検索
reモジュールを使用して文字列から動物の名前を検索する処理です。
テキスト処理やデータ検証、パターンマッチング処理において、正規表現は強力なツールとして活用されます。
出力結果:
シで終わる動物: ['イノシシ']
見つかった動物数: 1匹
import reでreモジュール(正規表現)を読み込みます。r"[ァ-ヶー]+シ"で検索条件を指定し、re.findall()でパターンに当てはまる文字列をすべて見つけます。
その後、文章の中から「シ」で終わる動物名を探し、見つかった動物とその数を表示するという流れです。
r"[ァ-ヶー]+シ"は「カタカナで『シ』で終わる文字列」を探すパターンの書き方です。この機会に覚えておきましょう。
ちなみに、re.findall()の構文は「findall(探すパターン, 探す対象の文字列)」という順番になっています。第1引数に「何を探すか」、第2引数に「どこから探すか」を指定します。
HTTP通信処理
urllibモジュールを使用してHTTP通信の基本的な処理をシミュレーションする例です。
Web APIとの通信やデータ取得において、HTTP通信処理は現代のプログラミングで必須の技術です。
出力結果:
動物API URL: https://zoo-api.com/animals?species=%E3%83%91%E3%83%B3%E3%83%80&count=2
from urllib.parse import urlencodeでurllibモジュールからurlencode関数だけを読み込みます。urlencode()でパンダの情報をURL用の文字列に変換します。
その後、動物APIにパンダの情報を問い合わせるためのURLを作成して表示するという流れです。
WebサイトのURLで「?name=田中&age=25」のような形を見たことはありませんか?
これは「URLエンコード」という方法で、日本語や特殊文字をWebで安全に送信できる形に変換したものです。urlencode()はこの変換を自動でやってくれる便利な関数です。
例えば「パンダ」という日本語は、そのままURLに入れると文字化けすることがあるため、「%E3%83%91%E3%83%B3%E3%83%80」のような英数字とパーセント記号の組み合わせに変換されます。
CSV形式データ処理
csvモジュールを使用して動物データをCSV形式で処理する例を見てみましょう。CSV形式は、データ分析やExcelとの連携において、最も基本的で重要なデータ交換形式です。
出力結果:
ライオン: 180kg
ゾウ: 4000kg
import csvでcsvモジュールを、import ioでioモジュールを読み込みます。io.StringIO()で文字列をファイルのように扱えるようにし、csv.DictReader()でCSVデータを辞書形式で読み込みます。
ちなみに、CSV形式は「カンマで区切られた値」という意味で、Excelでよく使われるデータ形式です。
例えば「名前,年齢,職業」のように、カンマで区切ってデータを整理します。csv.DictReader()を使うと、1行目の見出し(「動物,年齢,体重」)を自動で認識して、row['動物']のように列名で簡単にデータを取り出せるようになります。
また、io.StringIO()は実際のファイルではなく、メモリ上の文字列をファイルのように扱える便利な機能です。これにより、わざわざファイルを作らなくてもCSVデータを処理できます。
まとめ
Pythonのimport文は、他のモジュールの機能を読み込むための重要な文です。この記事では、基本的な使い方から実際の活用例まで解説しました。
import文が活用できるような場面は次のようなケースです。
import文が活躍する場面
- 日時や時間を扱いたいとき
- ランダムな値や選択が必要なとき
- 数学的な計算を正確に行いたいとき
- ファイルやシステム情報を操作したいとき
- データを異なる形式で処理したいとき
import文を用いる上で、押さえておきたいポイントは下記です。
重要なポイント
- import文は他のモジュールの機能を読み込むために使用する
- 基本形「import モジュール名」でモジュール全体を読み込める
- 「from モジュール名 import 関数名」で特定の機能だけを読み込める
- 「import モジュール名 as 別名」でモジュールに別名を付けられる
- 通常、ファイルの先頭部分に記述する
初めてPythonを学ぶ方も、この記事で紹介したimport文の基本的な使い方を参考にして、実際にコードを書いてみてください。
既に用意されている便利な機能を適切な場面で活用できれば、開発効率は大幅に向上します。
ぜひimport文をマスターして、より効率的で高機能なプログラムを作成できるようになりましょう。