Skip to content

8. モジュールと標準ライブラリの利用

Python の強力な機能のひとつに「モジュール」と「標準ライブラリ」の豊富さがあります。これらの利用方法をマスターすることで、プログラムを効率的に書くことができるようになります。この章では、モジュールとは何か、標準ライブラリの活用法について学びましょう。

8.1 モジュールとは

モジュールとは Python コードをまとめたファイルのことです。コードをモジュールとして整理することで、再利用しやすく、読みやすいプログラムを作成できます。

8.1.1 モジュールの導入

Python では、モジュールを読み込むためにimport文を使用します。以下は、Python の標準ライブラリであるmathモジュールを利用する例です。

import math

# mathモジュールを使用して平方根を計算
result = math.sqrt(25)
print(f"25の平方根は: {result}")

8.2 標準ライブラリ

Python には多くの便利な標準ライブラリが用意されています。ここでは、いくつかの代表的なライブラリを紹介します。

8.2.1 os モジュール

osモジュールは、OS に対するインターフェースを提供し、ファイルやディレクトリの操作ができます。

import os

# 現在の作業ディレクトリを出力
current_directory = os.getcwd()
print(f"現在のディレクトリは: {current_directory}")

# 新しいディレクトリの作成
os.makedirs("new_folder", exist_ok=True)
print("新しいディレクトリを作成しました")

8.2.2 datetime モジュール

datetimeモジュールは、日付や時間に関する操作を行うためのモジュールです。

from datetime import datetime

# 現在の日付と時刻を取得
now = datetime.now()
print(f"現在の日付と時刻: {now}")

# 特定の日付を作成
birthday = datetime(1990, 5, 17)
print(f"特定の日付: {birthday.strftime('%Y-%m-%d')}")

8.2.3 random モジュール

randomモジュールは、ランダムな数や選択を行うための便利なツールを提供します。

import random

# ランダムな整数を生成
random_number = random.randint(1, 100)
print(f"1から100までのランダムな整数: {random_number}")

# リストからランダムに選択
choices = ['リンゴ', 'バナナ', 'オレンジ']
selected_fruit = random.choice(choices)
print(f"選ばれた果物: {selected_fruit}")

8.3 外部ライブラリの利用

Python の「pip」というパッケージ管理システムを使って、外部ライブラリをインストールして使用することもできます。次は、requestsという外部ライブラリを例に挙げます。

8.3.1 requests モジュール

requestsは、HTTP リクエストを簡単に扱うための外部ライブラリです。まずはインストールを行いましょう。

pip install requests

その後、以下のようにして利用できます。

import requests

# HTTP GETリクエストを送信
response = requests.get('https://api.github.com')
print(f"ステータスコード: {response.status_code}")

# レスポンス内容を表示
print(f"レスポンス内容: {response.json()}")

これで、Python のモジュールと標準ライブラリの基本的な利用方法を学びました。標準ライブラリを上手に使うことで、プログラミング作業が効率化されます。興味があれば、公式ドキュメントを参照してさらに多くのライブラリに触れてみてください。

演習問題

演習 1: math モジュールの活用

mathモジュールを使って、以下の計算を行ってください。 1. 16の平方根 2. 2の3乗 3. 円周率(pi)の値

解答例
import math

# 16の平方根
sqrt_result = math.sqrt(16)
print(f"16の平方根: {sqrt_result}")  # 出力: 4.0

# 2の3乗
power_result = math.pow(2, 3)
print(f"2の3乗: {power_result}")  # 出力: 8.0

# 円周率
pi_value = math.pi
print(f"円周率: {pi_value}")  # 出力: 3.141592653589793

演習 2: random モジュールでゲーム

1から100までのランダムな整数を生成し、それを当てるゲームの基礎を作成してください。ランダムな数値を生成して表示するプログラムを作成してください。

解答例
import random

# 1から100までのランダムな整数を生成
secret_number = random.randint(1, 100)
print("1から100までのランダムな数を生成しました")
print(f"(答え: {secret_number})")  # 実際のゲームでは表示しません

# リストからランダムに複数選択
colors = ['赤', '青', '緑', '黄', '紫', '橙']
selected_colors = random.sample(colors, 3)
print(f"選ばれた3色: {selected_colors}")

演習 3: datetime モジュールで日付計算

現在の日時を取得し、以下を表示してください。 1. 現在の日時 2. 今日の日付のみ 3. 現在の時刻のみ 4. 今日から7日後の日付

解答例
from datetime import datetime, timedelta

# 現在の日時
now = datetime.now()
print(f"現在の日時: {now}")

# 今日の日付のみ
today = now.date()
print(f"今日の日付: {today}")

# 現在の時刻のみ
current_time = now.time()
print(f"現在の時刻: {current_time}")

# 7日後の日付
seven_days_later = now + timedelta(days=7)
print(f"7日後: {seven_days_later.date()}")

演習 4: os モジュールでディレクトリ操作

osモジュールを使って、以下の操作を行うプログラムを作成してください。 1. 現在のディレクトリを表示 2. 現在のディレクトリのファイル一覧を表示

解答例
import os

# 現在のディレクトリを表示
current_dir = os.getcwd()
print(f"現在のディレクトリ: {current_dir}")

# 現在のディレクトリのファイル一覧を表示
files = os.listdir(current_dir)
print("\nファイル一覧:")
for file in files:
    print(f"  - {file}")

# ディレクトリかファイルかを判定
print("\n詳細情報:")
for item in files[:5]:  # 最初の5つのみ表示
    full_path = os.path.join(current_dir, item)
    if os.path.isdir(full_path):
        print(f"  [DIR]  {item}")
    else:
        print(f"  [FILE] {item}")

演習 5: 複数モジュールの組み合わせ

randomdatetimeモジュールを組み合わせて、今日から過去30日間のランダムな日付を生成するプログラムを作成してください。

解答例
import random
from datetime import datetime, timedelta

# 現在の日時
today = datetime.now()

# 過去30日間のランダムな日付を5つ生成
print("過去30日間のランダムな日付:")
for i in range(5):
    # 0から30の間のランダムな日数
    random_days = random.randint(0, 30)
    random_date = today - timedelta(days=random_days)
    print(f"  {i+1}. {random_date.strftime('%Y-%m-%d')}")