では、「モジュールと import」の学習テーマについて、
基礎 → 応用まで 50問 の練習問題セットを作ります。
各問題には:
- 問題文(初心者にもわかる日本語)
- ヒント(考え方の方向づけ)
- 解答コード
- 解説
を付けます。
さらに後で「自動採点スクリプト付き Jupyter Notebook版」に変換できるように、セル構造に適した構成で出します。
- 【レベル1:基礎(Q1〜Q10)】モジュールとは?importの基本
- Q1. math モジュールをインポートして、平方根 √25 を表示してください。
- Q2. random モジュールを使って、1〜10の乱数を1つ表示せよ。
- Q3. from math import pi の形で π を取り込み、円の面積(r=3)を表示。
- Q4. math モジュールに別名 m を付けて √49 を表示。
- Q5. datetime モジュールで現在の日付と時刻を出力。
- Q6. import 文を2行で複数モジュール(math, random)を読み込んでみよう。
- Q7. dir(math) を実行して、モジュールにどんな関数があるか調べてみよう。
- Q8. モジュール math の help() を使って関数の説明を確認。
- Q9. 組み込み関数 abs() を使って、-10の絶対値を出力。
- Q10. 標準ライブラリの calendar モジュールを使って、2025年11月のカレンダーを表示。
- 【レベル2:中級(Q11〜Q30)】モジュール活用・応用 import
- Q11. from random import randint を使い、1〜6のサイコロを10回振る。
- Q12. from math import * を使い、sin(π/2) を計算。
- Q13. time モジュールで1秒ごとに「Hello」を3回表示。
- Q14. os モジュールで現在の作業ディレクトリを表示。
- Q15. os モジュールでフォルダ内のファイル一覧を取得。
- Q16. statistics モジュールを使い、[1, 2, 3, 4, 5] の平均値を出力。
- Q17. random.choice() でリスト [“A”, “B”, “C”] から1つランダムに選ぶ。
- Q18. math.factorial() で 6!(6の階乗)を計算。
- Q19. decimal モジュールで 0.1 + 0.2 の誤差をなくす。
- Q20. import 文を1行で複数モジュールを読み込む。
- Q21. sys モジュールでPythonのバージョンを確認。
- Q22. import 文で存在しないモジュールを読み込んだらどうなるか?
- Q23. import this を実行して「Pythonの哲学(Zen)」を表示。
- Q24. __name__ の値を表示する。
- Q25. ファイルを直接実行した時だけ動く if文を作る。
- Q26. json モジュールで辞書をJSON文字列に変換。
- Q27. json.loads() でJSON文字列を辞書に戻す。
- Q28. platform モジュールでOS情報を表示。
- Q29. import 文でモジュールをエイリアス付きで複数指定。
- Q30. math モジュールの全関数をリストアップして数を数える。
- 【レベル3:上級(Q31〜Q50)】自作モジュール・パッケージ・外部ライブラリ
- Q31. mylib.py に add(a,b) を定義して、別ファイルから import。
- Q32. mylib.py に greet(name) を追加し、from mylib import greet で呼び出す。
- Q33. __name__ == "__main__" を使って mylib 内でテスト出力をする。
- Q34. utils/ フォルダを作り、__init__.py を追加してパッケージ化。
- Q35. calc.py 内に double(x) 関数を定義し、パッケージ経由で呼び出す。
- Q36. __init__.py に from .calc import double を書いて、短い import を実現。
- Q37. pip install requests をして、GitHub API からレスポンスを取得。
- Q38. pip install rich を使ってカラフル出力。
- Q39. pip install numpy をして配列の平均を求める。
- Q40. pip install matplotlib 後、簡単なグラフを描く。
- Q41. sys.path を表示してモジュール検索パスを確認。
- Q42. 外部ライブラリのバージョンを確認する(例:requests)。
- Q43. モジュールが存在する場所(ファイルパス)を確認。
- Q44. 独自モジュールを importlib.reload() で再読み込み。
- Q45. try文で import 失敗時にメッセージを出す。
- Q46. 自作モジュールに __all__ = ['add', 'subtract'] を設定して制御。
- Q47. from mylib import * の動作を確認。
- Q48. package/__init__.py に複数モジュールを統合して短く import。
- Q49. 自作パッケージを pip install -e . で開発モードインストール。
- Q50. 3ファイル(tasks.py, storage.py, main.py)を組み合わせて ToDo アプリを完成。
【レベル1:基礎(Q1〜Q10)】モジュールとは?importの基本
Q1. math モジュールをインポートして、平方根 √25 を表示してください。
ヒント:import と math.sqrt() を使う
# 解答例
import math
print(math.sqrt(25))
Python解説:sqrt は square root(平方根)の略。
Q2. random モジュールを使って、1〜10の乱数を1つ表示せよ。
import random
print(random.randint(1, 10))
PythonQ3. from math import pi の形で π を取り込み、円の面積(r=3)を表示。
from math import pi
r = 3
print(pi * r**2)
PythonQ4. math モジュールに別名 m を付けて √49 を表示。
import math as m
print(m.sqrt(49))
PythonQ5. datetime モジュールで現在の日付と時刻を出力。
from datetime import datetime
print(datetime.now())
PythonQ6. import 文を2行で複数モジュール(math, random)を読み込んでみよう。
import math
import random
print(math.ceil(random.random() * 10))
PythonQ7. dir(math) を実行して、モジュールにどんな関数があるか調べてみよう。
import math
print(dir(math))
PythonQ8. モジュール math の help() を使って関数の説明を確認。
import math
help(math.sqrt)
PythonQ9. 組み込み関数 abs() を使って、-10の絶対値を出力。
print(abs(-10))
PythonQ10. 標準ライブラリの calendar モジュールを使って、2025年11月のカレンダーを表示。
import calendar
print(calendar.month(2025, 11))
Python【レベル2:中級(Q11〜Q30)】モジュール活用・応用 import
Q11. from random import randint を使い、1〜6のサイコロを10回振る。
from random import randint
for _ in range(10):
print(randint(1, 6))
PythonQ12. from math import * を使い、sin(π/2) を計算。
from math import *
print(sin(pi/2))
PythonQ13. time モジュールで1秒ごとに「Hello」を3回表示。
import time
for _ in range(3):
print("Hello")
time.sleep(1)
PythonQ14. os モジュールで現在の作業ディレクトリを表示。
import os
print(os.getcwd())
PythonQ15. os モジュールでフォルダ内のファイル一覧を取得。
import os
print(os.listdir())
PythonQ16. statistics モジュールを使い、[1, 2, 3, 4, 5] の平均値を出力。
import statistics
print(statistics.mean([1, 2, 3, 4, 5]))
PythonQ17. random.choice() でリスト [“A”, “B”, “C”] から1つランダムに選ぶ。
import random
print(random.choice(["A", "B", "C"]))
PythonQ18. math.factorial() で 6!(6の階乗)を計算。
import math
print(math.factorial(6))
PythonQ19. decimal モジュールで 0.1 + 0.2 の誤差をなくす。
from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))
PythonQ20. import 文を1行で複数モジュールを読み込む。
import math, random
print(math.floor(random.random() * 10))
PythonQ21. sys モジュールでPythonのバージョンを確認。
import sys
print(sys.version)
PythonQ22. import 文で存在しないモジュールを読み込んだらどうなるか?
# import fake_module
# → ModuleNotFoundError が発生
PythonQ23. import this を実行して「Pythonの哲学(Zen)」を表示。
import this
PythonQ24. __name__ の値を表示する。
print(__name__)
PythonQ25. ファイルを直接実行した時だけ動く if文を作る。
if __name__ == "__main__":
print("このスクリプトが直接実行されました!")
PythonQ26. json モジュールで辞書をJSON文字列に変換。
import json
data = {"name": "Halu", "age": 20}
print(json.dumps(data))
PythonQ27. json.loads() でJSON文字列を辞書に戻す。
import json
s = '{"a":1, "b":2}'
print(json.loads(s))
PythonQ28. platform モジュールでOS情報を表示。
import platform
print(platform.system())
PythonQ29. import 文でモジュールをエイリアス付きで複数指定。
import math as m, random as r
print(m.sqrt(r.randint(1, 100)))
PythonQ30. math モジュールの全関数をリストアップして数を数える。
import math
print(len(dir(math)))
Python【レベル3:上級(Q31〜Q50)】自作モジュール・パッケージ・外部ライブラリ
Q31. mylib.py に add(a,b) を定義して、別ファイルから import。
# mylib.py
def add(a, b):
return a + b
Python# main.py
import mylib
print(mylib.add(2, 3))
PythonQ32. mylib.py に greet(name) を追加し、from mylib import greet で呼び出す。
def greet(name):
print("Hello,", name)
PythonQ33. __name__ == "__main__" を使って mylib 内でテスト出力をする。
if __name__ == "__main__":
print("モジュール単体テスト")
PythonQ34. utils/ フォルダを作り、__init__.py を追加してパッケージ化。
utils/
├── __init__.py
└── calc.py
Q35. calc.py 内に double(x) 関数を定義し、パッケージ経由で呼び出す。
from utils.calc import double
print(double(5))
PythonQ36. __init__.py に from .calc import double を書いて、短い import を実現。
from utils import double
print(double(10))
PythonQ37. pip install requests をして、GitHub API からレスポンスを取得。
import requests
res = requests.get("https://api.github.com")
print(res.status_code)
PythonQ38. pip install rich を使ってカラフル出力。
from rich import print
print("[bold magenta]Hello, colorful world![/]")
PythonQ39. pip install numpy をして配列の平均を求める。
import numpy as np
print(np.mean([1, 2, 3, 4]))
PythonQ40. pip install matplotlib 後、簡単なグラフを描く。
import matplotlib.pyplot as plt
plt.plot([1,2,3], [2,4,8])
plt.show()
PythonQ41. sys.path を表示してモジュール検索パスを確認。
import sys
print(sys.path)
PythonQ42. 外部ライブラリのバージョンを確認する(例:requests)。
import requests
print(requests.__version__)
PythonQ43. モジュールが存在する場所(ファイルパス)を確認。
import math
print(math.__file__)
PythonQ44. 独自モジュールを importlib.reload() で再読み込み。
import importlib, mylib
importlib.reload(mylib)
PythonQ45. try文で import 失敗時にメッセージを出す。
try:
import nonexistent
except ModuleNotFoundError:
print("モジュールが見つかりません。")
PythonQ46. 自作モジュールに __all__ = ['add', 'subtract'] を設定して制御。
# mylib.py
__all__ = ['add']
def add(a,b): return a+b
def secret(): return "秘密"
PythonQ47. from mylib import * の動作を確認。
from mylib import *
print(add(1,2))
# print(secret()) # ← エラー(__all__ に含まれない)
PythonQ48. package/__init__.py に複数モジュールを統合して短く import。
from .mathutils import add
from .stringutils import shout
PythonQ49. 自作パッケージを pip install -e . で開発モードインストール。
(仮想環境で実験可)
→ setup.py を用意して登録する流れを理解。
Q50. 3ファイル(tasks.py, storage.py, main.py)を組み合わせて ToDo アプリを完成。
(※作成済みコードを参照)
