Python | レベル別練習問題:モジュールと import

Python
スポンサーリンク

では、「モジュールと import」の学習テーマについて、
基礎 → 応用まで 50問 の練習問題セットを作ります。

各問題には:

  • 問題文(初心者にもわかる日本語)
  • ヒント(考え方の方向づけ)
  • 解答コード
  • 解説
    を付けます。

さらに後で「自動採点スクリプト付き Jupyter Notebook版」に変換できるように、セル構造に適した構成で出します。


  1. 【レベル1:基礎(Q1〜Q10)】モジュールとは?importの基本
    1. Q1. math モジュールをインポートして、平方根 √25 を表示してください。
    2. Q2. random モジュールを使って、1〜10の乱数を1つ表示せよ。
    3. Q3. from math import pi の形で π を取り込み、円の面積(r=3)を表示。
    4. Q4. math モジュールに別名 m を付けて √49 を表示。
    5. Q5. datetime モジュールで現在の日付と時刻を出力。
    6. Q6. import 文を2行で複数モジュール(math, random)を読み込んでみよう。
    7. Q7. dir(math) を実行して、モジュールにどんな関数があるか調べてみよう。
    8. Q8. モジュール math の help() を使って関数の説明を確認。
    9. Q9. 組み込み関数 abs() を使って、-10の絶対値を出力。
    10. Q10. 標準ライブラリの calendar モジュールを使って、2025年11月のカレンダーを表示。
  2. 【レベル2:中級(Q11〜Q30)】モジュール活用・応用 import
    1. Q11. from random import randint を使い、1〜6のサイコロを10回振る。
    2. Q12. from math import * を使い、sin(π/2) を計算。
    3. Q13. time モジュールで1秒ごとに「Hello」を3回表示。
    4. Q14. os モジュールで現在の作業ディレクトリを表示。
    5. Q15. os モジュールでフォルダ内のファイル一覧を取得。
    6. Q16. statistics モジュールを使い、[1, 2, 3, 4, 5] の平均値を出力。
    7. Q17. random.choice() でリスト [“A”, “B”, “C”] から1つランダムに選ぶ。
    8. Q18. math.factorial() で 6!(6の階乗)を計算。
    9. Q19. decimal モジュールで 0.1 + 0.2 の誤差をなくす。
    10. Q20. import 文を1行で複数モジュールを読み込む。
    11. Q21. sys モジュールでPythonのバージョンを確認。
    12. Q22. import 文で存在しないモジュールを読み込んだらどうなるか?
    13. Q23. import this を実行して「Pythonの哲学(Zen)」を表示。
    14. Q24. __name__ の値を表示する。
    15. Q25. ファイルを直接実行した時だけ動く if文を作る。
    16. Q26. json モジュールで辞書をJSON文字列に変換。
    17. Q27. json.loads() でJSON文字列を辞書に戻す。
    18. Q28. platform モジュールでOS情報を表示。
    19. Q29. import 文でモジュールをエイリアス付きで複数指定。
    20. Q30. math モジュールの全関数をリストアップして数を数える。
  3. 【レベル3:上級(Q31〜Q50)】自作モジュール・パッケージ・外部ライブラリ
    1. Q31. mylib.py に add(a,b) を定義して、別ファイルから import。
    2. Q32. mylib.py に greet(name) を追加し、from mylib import greet で呼び出す。
    3. Q33. __name__ == "__main__" を使って mylib 内でテスト出力をする。
    4. Q34. utils/ フォルダを作り、__init__.py を追加してパッケージ化。
    5. Q35. calc.py 内に double(x) 関数を定義し、パッケージ経由で呼び出す。
    6. Q36. __init__.py に from .calc import double を書いて、短い import を実現。
    7. Q37. pip install requests をして、GitHub API からレスポンスを取得。
    8. Q38. pip install rich を使ってカラフル出力。
    9. Q39. pip install numpy をして配列の平均を求める。
    10. Q40. pip install matplotlib 後、簡単なグラフを描く。
    11. Q41. sys.path を表示してモジュール検索パスを確認。
    12. Q42. 外部ライブラリのバージョンを確認する(例:requests)。
    13. Q43. モジュールが存在する場所(ファイルパス)を確認。
    14. Q44. 独自モジュールを importlib.reload() で再読み込み。
    15. Q45. try文で import 失敗時にメッセージを出す。
    16. Q46. 自作モジュールに __all__ = ['add', 'subtract'] を設定して制御。
    17. Q47. from mylib import * の動作を確認。
    18. Q48. package/__init__.py に複数モジュールを統合して短く import。
    19. Q49. 自作パッケージを pip install -e . で開発モードインストール。
    20. Q50. 3ファイル(tasks.py, storage.py, main.py)を組み合わせて ToDo アプリを完成。

【レベル1:基礎(Q1〜Q10)】モジュールとは?importの基本


Q1. math モジュールをインポートして、平方根 √25 を表示してください。

ヒントimportmath.sqrt() を使う

# 解答例
import math
print(math.sqrt(25))
Python

解説sqrt は square root(平方根)の略。


Q2. random モジュールを使って、1〜10の乱数を1つ表示せよ。

import random
print(random.randint(1, 10))
Python

Q3. from math import pi の形で π を取り込み、円の面積(r=3)を表示。

from math import pi
r = 3
print(pi * r**2)
Python

Q4. math モジュールに別名 m を付けて √49 を表示。

import math as m
print(m.sqrt(49))
Python

Q5. datetime モジュールで現在の日付と時刻を出力。

from datetime import datetime
print(datetime.now())
Python

Q6. import 文を2行で複数モジュール(math, random)を読み込んでみよう。

import math
import random
print(math.ceil(random.random() * 10))
Python

Q7. dir(math) を実行して、モジュールにどんな関数があるか調べてみよう。

import math
print(dir(math))
Python

Q8. モジュール math の help() を使って関数の説明を確認。

import math
help(math.sqrt)
Python

Q9. 組み込み関数 abs() を使って、-10の絶対値を出力。

print(abs(-10))
Python

Q10. 標準ライブラリの 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))
Python

Q12. from math import * を使い、sin(π/2) を計算。

from math import *
print(sin(pi/2))
Python

Q13. time モジュールで1秒ごとに「Hello」を3回表示。

import time
for _ in range(3):
    print("Hello")
    time.sleep(1)
Python

Q14. os モジュールで現在の作業ディレクトリを表示。

import os
print(os.getcwd())
Python

Q15. os モジュールでフォルダ内のファイル一覧を取得。

import os
print(os.listdir())
Python

Q16. statistics モジュールを使い、[1, 2, 3, 4, 5] の平均値を出力。

import statistics
print(statistics.mean([1, 2, 3, 4, 5]))
Python

Q17. random.choice() でリスト [“A”, “B”, “C”] から1つランダムに選ぶ。

import random
print(random.choice(["A", "B", "C"]))
Python

Q18. math.factorial() で 6!(6の階乗)を計算。

import math
print(math.factorial(6))
Python

Q19. decimal モジュールで 0.1 + 0.2 の誤差をなくす。

from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))
Python

Q20. import 文を1行で複数モジュールを読み込む。

import math, random
print(math.floor(random.random() * 10))
Python

Q21. sys モジュールでPythonのバージョンを確認。

import sys
print(sys.version)
Python

Q22. import 文で存在しないモジュールを読み込んだらどうなるか?

# import fake_module
# → ModuleNotFoundError が発生
Python

Q23. import this を実行して「Pythonの哲学(Zen)」を表示。

import this
Python

Q24. __name__ の値を表示する。

print(__name__)
Python

Q25. ファイルを直接実行した時だけ動く if文を作る。

if __name__ == "__main__":
    print("このスクリプトが直接実行されました!")
Python

Q26. json モジュールで辞書をJSON文字列に変換。

import json
data = {"name": "Halu", "age": 20}
print(json.dumps(data))
Python

Q27. json.loads() でJSON文字列を辞書に戻す。

import json
s = '{"a":1, "b":2}'
print(json.loads(s))
Python

Q28. platform モジュールでOS情報を表示。

import platform
print(platform.system())
Python

Q29. import 文でモジュールをエイリアス付きで複数指定。

import math as m, random as r
print(m.sqrt(r.randint(1, 100)))
Python

Q30. 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))
Python

Q32. mylib.py に greet(name) を追加し、from mylib import greet で呼び出す。

def greet(name):
    print("Hello,", name)
Python

Q33. __name__ == "__main__" を使って mylib 内でテスト出力をする。

if __name__ == "__main__":
    print("モジュール単体テスト")
Python

Q34. utils/ フォルダを作り、__init__.py を追加してパッケージ化。

utils/
├── __init__.py
└── calc.py

Q35. calc.py 内に double(x) 関数を定義し、パッケージ経由で呼び出す。

from utils.calc import double
print(double(5))
Python

Q36. __init__.py に from .calc import double を書いて、短い import を実現。

from utils import double
print(double(10))
Python

Q37. pip install requests をして、GitHub API からレスポンスを取得。

import requests
res = requests.get("https://api.github.com")
print(res.status_code)
Python

Q38. pip install rich を使ってカラフル出力。

from rich import print
print("[bold magenta]Hello, colorful world![/]")
Python

Q39. pip install numpy をして配列の平均を求める。

import numpy as np
print(np.mean([1, 2, 3, 4]))
Python

Q40. pip install matplotlib 後、簡単なグラフを描く。

import matplotlib.pyplot as plt
plt.plot([1,2,3], [2,4,8])
plt.show()
Python

Q41. sys.path を表示してモジュール検索パスを確認。

import sys
print(sys.path)
Python

Q42. 外部ライブラリのバージョンを確認する(例:requests)。

import requests
print(requests.__version__)
Python

Q43. モジュールが存在する場所(ファイルパス)を確認。

import math
print(math.__file__)
Python

Q44. 独自モジュールを importlib.reload() で再読み込み。

import importlib, mylib
importlib.reload(mylib)
Python

Q45. try文で import 失敗時にメッセージを出す。

try:
    import nonexistent
except ModuleNotFoundError:
    print("モジュールが見つかりません。")
Python

Q46. 自作モジュールに __all__ = ['add', 'subtract'] を設定して制御。

# mylib.py
__all__ = ['add']
def add(a,b): return a+b
def secret(): return "秘密"
Python

Q47. from mylib import * の動作を確認。

from mylib import *
print(add(1,2))
# print(secret())  # ← エラー(__all__ に含まれない)
Python

Q48. package/__init__.py に複数モジュールを統合して短く import。

from .mathutils import add
from .stringutils import shout
Python

Q49. 自作パッケージを pip install -e . で開発モードインストール。

(仮想環境で実験可)
→ setup.py を用意して登録する流れを理解。


Q50. 3ファイル(tasks.py, storage.py, main.py)を組み合わせて ToDo アプリを完成。

(※作成済みコードを参照)

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました