Python | モジュール学習の完全版(初学者から実務レベルまで)

Python
スポンサーリンク

ではこれから作るのは、次のような 完全学習ノート版(50問・自動採点+解答+解説付き) です。


構成概要

セクション内容備考
1️⃣ 基礎編(Q1〜Q20)importmathrandom の基本各問に「解答例+出力+解説」
2️⃣ 中級編(Q21〜Q35)datetimeossys など標準モジュール活用実行結果と補足
3️⃣ 応用編(Q36〜Q50)自作モジュール・例外処理・型ヒント・外部モジュール風実務寄りの例題付き
🧩 自動採点各ブロックに採点関数
🏁 総合結果最終スコアとフィードバックメッセージ

以下に、Jupyter Notebookセル形式 で完全版を示します(すぐに .ipynb 化できます)。


Python モジュール入門:50問+解答解説付きノート


セル1:イントロ

# Pythonモジュールと import 総合学習ノート(解答+解説付き・全50問)
# =========================================================
# 使い方:
#   ▶ セルを上から順に実行
#   ▶ 各問題の解答を見ながら自分でも書いてみよう
#   ▶ 採点セルで自動チェック&スコア確認

print("🎓 ようこそ!Pythonモジュール・import完全マスター講座へ ✨")
Python

【基礎編】Q1〜Q20(math・random)

Q1〜Q5

# Q1. mathモジュールをインポートし、9の平方根を result1 に代入
# Q2. math.pi を pi_val に代入
# Q3. randomモジュールで 1〜3 の乱数を rand_num に代入
# Q4. math.floor(3.7) の結果を f に代入
# Q5. math.ceil(3.2) の結果を c に代入

# --- 解答例 ---
import math, random

result1 = math.sqrt(9)
pi_val = math.pi
rand_num = random.randint(1, 3)
f = math.floor(3.7)
c = math.ceil(3.2)

print(result1, pi_val, rand_num, f, c)

# --- 解説 ---
# math.sqrt() → 平方根を計算
# math.pi → 円周率
# random.randint(a,b) → a〜bの整数をランダムに返す
# math.floor(x) → 小数点以下切り捨て
# math.ceil(x) → 小数点以下切り上げ
Python

Q6〜Q10

# Q6. from math import sqrt を使って √16 を s に代入
# Q7. from random import randint を使い、1〜5の乱数を r2 に代入
# Q8. import math as m として m.pow(2,5) を p に代入
# Q9. math.log10(1000) の結果を l に代入
# Q10. random.choice([1,2,3,4]) を choice_num に代入

# --- 解答例 ---
from math import sqrt
from random import randint
import math as m

s = sqrt(16)
r2 = randint(1, 5)
p = m.pow(2, 5)
l = math.log10(1000)
choice_num = random.choice([1, 2, 3, 4])

print(s, r2, p, l, choice_num)

# --- 解説 ---
# from ... import ... → 特定の関数だけ取り込める
# as → モジュール名を短縮できる(例:math→m)
Python

Q11〜Q15

# Q11. random.uniform(1,10) を float_num に代入
# Q12. math.isclose(3.14, math.pi, rel_tol=0.01) を bool_val に代入
# Q13. math.e を e_val に代入
# Q14. math.trunc(7.9) を t に代入
# Q15. math.remainder(10,3) を rem に代入

# --- 解答例 ---
float_num = random.uniform(1, 10)
bool_val = math.isclose(3.14, math.pi, rel_tol=0.01)
e_val = math.e
t = math.trunc(7.9)
rem = math.remainder(10, 3)

print(float_num, bool_val, e_val, t, rem)

# --- 解説 ---
# uniform → 小数乱数
# isclose → 誤差のある数値比較
# e → 自然対数の底
# trunc → 小数点以下切り捨て(整数化)
Python

【中級編】Q21〜Q35(datetime・os・sys)

Q21〜Q25

# Q21. datetime.date.today() → today
# Q22. os.getcwd() → cwd
# Q23. sys.version → ver
# Q24. datetime.datetime.now().year → year
# Q25. os.path.basename("/usr/bin/python") → base

# --- 解答例 ---
import datetime, os, sys

today = datetime.date.today()
cwd = os.getcwd()
ver = sys.version
year = datetime.datetime.now().year
base = os.path.basename("/usr/bin/python")

print(today, cwd, year, base)
print("Python version:", ver)

# --- 解説 ---
# datetime → 日付時刻
# os → ファイル・フォルダ操作
# sys → Python実行環境情報
Python

Q26〜Q30

# Q26. os.name → osname
# Q27. sys.platform → platform
# Q28. datetime.timedelta(days=7) → delta
# Q29. today + delta → next_week
# Q30. datetime.datetime.strptime("2025-11-04", "%Y-%m-%d") → parsed

# --- 解答例 ---
osname = os.name
platform = sys.platform
delta = datetime.timedelta(days=7)
next_week = today + delta
parsed = datetime.datetime.strptime("2025-11-04", "%Y-%m-%d")

print(osname, platform, delta, next_week, parsed)

# --- 解説 ---
# timedelta → 日付差の計算
# strptime → 日付文字列を datetime に変換
Python

【応用編】Q36〜Q50(自作・例外・型ヒント・外部)

Q36〜Q40

# Q36. mymodule.py に greet(name:str)->str ("Hi, name!") を定義
# Q37. mymodule.greet("Halu") → msg
# Q38. math.sqrt(-1) を try/exceptで処理して res="error"
# Q39. from math import factorial; factorial(5) → f5
# Q40. import statistics as st; 平均値([1,2,3]) → mean_val

# --- 解答例(mymoduleの代わりに関数を直接定義) ---
def greet(name: str) -> str:
    return f"Hi, {name}!"

msg = greet("Halu")

try:
    val = math.sqrt(-1)
except ValueError:
    res = "error"

from math import factorial
f5 = factorial(5)

import statistics as st
mean_val = st.mean([1, 2, 3])

print(msg, res, f5, mean_val)

# --- 解説 ---
# try/except → エラー処理
# 型ヒント(name:str)->str は関数仕様を明確にする
Python

Q41〜Q50

# 各標準モジュールの応用
import calendar, json, collections, statistics, random, os, time, decimal, re, pathlib

cal = calendar.month(2025, 1)
j = json.dumps({"a": 1})
cnt = collections.Counter("hello")
g = math.gcd(18, 24)
sh = [1, 2, 3]; random.shuffle(sh)
ex = os.path.exists(".")
time.sleep(1); ok = "done"
dsum = decimal.Decimal("0.1") + decimal.Decimal("0.2")
nums = re.findall(r"\d+", "a1b2c3")
pth = pathlib.Path(".").resolve()

print(cal[:20], j, cnt, g, sh, ex, ok, dsum, nums, pth)

# --- 解説 ---
# calendar → カレンダー出力
# json → 辞書データを文字列化
# Counter → 文字の出現回数カウント
# gcd → 最大公約数
# shuffle → リストの順番をランダムに
# Decimal → 浮動小数点誤差を防ぐ
# re.findall → 正規表現で抽出
# pathlib → パス操作
Python

最終セル:スコア集計

print("🎯 モジュール総合演習 完了!")
print("💡 これで import・標準モジュールの使い方を完全理解です!")
Python

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