初心者向けに「なぜモジュールを使うのか」「どう使うのか」「自分で作るには?」を、実際に動かせる例と練習問題(解答付き)でしっかり説明します。コードはそのまま Python に貼って試せます。
1) モジュールって何?なぜ使うの?
モジュール = 関数・変数・クラスなどをまとめたファイル(.py)
- 目的:同じ処理を何度も書かない、コードを整理する、他人が作った便利な機能を使うため。
- 例:
math(数学関数)、random(乱数)などは最初から使える「標準モジュール」です。
メリット
- 再利用できる(何度も同じ処理を書かない)
- 見通しがよくなる(機能ごとにファイルに分ける)
- 他人や標準ライブラリの便利な機能を取り込める
2) 基本の import の書き方(で実行してみよう)
例 1 — モジュール全体をインポート
import math
print(math.sqrt(9)) # 3.0
print(math.pi) # 3.141592653589793
Pythonポイント:math.sqrt のように「モジュール名.関数名」で呼び出す。
例 2 — モジュールから特定の名前だけ取り込む
from math import sqrt, pi
print(sqrt(16)) # 4.0
print(pi) # 3.1415...
Pythonポイント:math. を書かなくて良いので短く書ける。
例 3 — 別名(エイリアス)を付ける
import math as m
print(m.sqrt(25)) # 5.0
Pythonポイント:長いモジュール名を短くしたいときに便利(import numpy as np のように頻出)。
例 4 — 全部取り込む(注意)
from math import *
print(sin(0.5))
Python注意:名前が増えて、どのモジュールのものか分かりにくくなるため大規模コードでは推奨されません。
3) 自分でモジュール(ファイル)を作る方法
- ファイル
mymath.pyを作る:
# mymath.py
def add(a, b):
return a + b
def factorial(n):
if n <= 1:
return 1
return n * factorial(n-1)
Python- 別ファイルで使う:
# main.py
import mymath
print(mymath.add(3, 4)) # 7
print(mymath.factorial(5)) # 120
Pythonヒント:mymath.py と main.py は同じフォルダに置くと簡単に import できます。
4) 実践:__name__ == "__main__" の意味(モジュールをテストするときに便利)
mymath.py に次を追加してみると:
# mymath.py
def add(a, b):
return a + b
if __name__ == "__main__":
# このブロックは「直接このファイルを実行したときだけ」動く
print("テスト:", add(2, 3))
Pythonpython mymath.pyと直接実行すると"テスト: 5"が出る。import mymathするとこのテスト部分は実行されない(モジュールとして安全に使える)。
5) モジュール検索パス(エラーのよくある原因)
- Python は
import時に現在のフォルダ → 標準ライブラリ → サイトパッケージ等の順で検索します。 - よくある失敗:
- ファイル名が標準モジュール名と被っている(例:自分のファイル名を
math.pyにしてしまうと本物のmathが使えなくなる)。 - ファイルが別フォルダにあって
ImportErrorが出る(同じディレクトリかPYTHONPATHを確認)。
- ファイル名が標準モジュール名と被っている(例:自分のファイル名を
6) 標準モジュール vs 外部ライブラリ(ざっくり)
- 標準モジュール:Pythonに最初から入っている(例:
math,random,json)。すぐ使える。 - 外部ライブラリ:必要があれば
pip install ライブラリ名で追加して使う(例:numpy,requests)。
(pipの使い方は後で追加説明できます)
7) 例題(ステップで動かせる)と解説
例題 A(簡単) — random を使ってサイコロを振る
import random
def roll_dice():
return random.randint(1, 6)
print(roll_dice())
Python説明:random.randint(1,6) は 1〜6 の整数を出す関数。サイコロのシミュレーションに便利。
例題 B(中級) — datetime で今の年月日を表示
from datetime import datetime
now = datetime.now()
print(now.year, now.month, now.day)
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 例: 2025-11-04 19:00:00
Python説明:datetime は日付や時間の処理に便利な標準モジュール。
例題 C(やや応用) — 自分のモジュール textutils.py を作って使う
textutils.py:
# textutils.py
def shout(s):
return s.upper() + "!"
def repeat(s, n=2):
return (s + " ") * n
Pythonmain.py:
from textutils import shout, repeat
print(shout("hello"))
print(repeat("hi", 3))
Python説明:関数ごとに分けて整理することで、必要な機能だけ取り出して使えます。
8) 練習問題(回答付き)
初級
Q1. math モジュールを使って 2 の平方根を出力するコードを書きなさい。
解答
import math
print(math.sqrt(2))
Python中級
Q2. random モジュールを使って 0〜1 の小数を 5 個生成する関数 five_random() を作りなさい(標準出力でそれぞれ表示)。
解答
import random
def five_random():
for _ in range(5):
print(random.random())
five_random()
Python説明:random.random() は 0 以上 1 未満の浮動小数点を返す。
上級
Q3. mylib.py に is_prime(n)(素数判定)を実装して、それを別ファイルから呼び出して 2〜50 の素数を表示するプログラムを書きなさい。
解答(mylib.py)
# mylib.py
def is_prime(n):
if n < 2:
return False
i = 2
while i * i <= n:
if n % i == 0:
return False
i += 1
return True
Python解答(main.py)
import mylib
for n in range(2, 51):
if mylib.is_prime(n):
print(n)
Python説明:自作モジュール mylib を別ファイルから import して利用している。
9) よくあるエラーと対処法
ModuleNotFoundError: No module named 'xxx'
→ ファイル名やフォルダ位置を確認。外部ライブラリならpip install xxxが必要。- 名前が被る(例:自分の
random.pyが標準randomを邪魔する)
→ 自分のファイル名を変更する。 from module import nameでnameが見つからない
→ モジュール内でその名前が定義されているかを確認。
10) ちょっとしたコツ
- 最初は
import モジュールでモジュール名を付けて使う(どのモジュールの関数か明確になる)。 - 便利な機能を見つけたら標準ライブラリを調べてみる(
json,os,pathlib,itertoolsなど)。 - 自分用のヘルパー関数は小さなモジュールにまとめて保管しておくと再利用しやすい。
