Python3 #26: モジュール(Modules)

独習 PYTHON 3

Pythonのモジュール(Modules)は、コードを再利用可能で管理しやすい小さな単位に分割するための仕組みです。モジュールは関数、クラス、変数、そして実行可能なコードを含むファイルで、他のPythonファイルからインポートして使用することができます。

1. モジュールの作成方法

モジュールの作成方法は簡単で、基本的にはPythonファイルを作成し、その中に関数やクラスを定義するだけです。以下に具体的な手順を示します。

1.1.モジュールの作成手順

1.1.1. 新しいPythonファイルを作成する: モジュールとなるPythonファイルを作成します。例えば、mymodule.pyというファイルを作成します。

# mymodule.py
def greeting(name):
    return f"Hello, {name}"

pi = 3.14159

1.1.2 モジュールを他のPythonファイルでインポートする:
作成したモジュールを別のPythonファイルからインポートして使用します。

# main.py
import mymodule

print(mymodule.greeting("Alice"))
print(mymodule.pi)

1.2.モジュールの内容

モジュールには、関数、クラス、変数、その他の実行可能なコードを含めることができます。以下に例を示します。

関数

# mymodule.py
def greeting(name):
    return f"Hello, {name}"

変数

# mymodule.py
pi = 3.14159

クラス

# mymodule.py
class Calculator:
    def add(self, a, b):
        return a + b

    def subtract(self, a, b):
        return a - b

1.3.インポートの方法

1.3.1. モジュール全体をインポート: モジュール全体をインポートして使用する場合。

import mymodule

print(mymodule.greeting("Alice"))
print(mymodule.pi)

calc = mymodule.Calculator()
print(calc.add(2, 3))

1.3.2. 特定の関数やクラスをインポート:

モジュール内の特定の関数やクラスのみをインポートして使用する場合。

from mymodule import greeting, Calculator

print(greeting("Alice"))

calc = Calculator()
print(calc.add(2, 3))

1.3.3. モジュールに別名を付けてインポート:

モジュールに別名を付けてインポートする場合。

import mymodule as mm

print(mm.greeting("Alice"))

1.4.パッケージの作成

複数のモジュールを含むディレクトリをパッケージとして構成することもできます。パッケージは、モジュールをまとめて管理するためのディレクトリで、そのディレクトリには特別なファイル__init__.pyが含まれます。このファイルが存在することで、そのディレクトリはパッケージとして認識されます。

1.4.1パッケージの例

ディレクトリ構造:

mypackage/
    __init__.py
    module1.py
    module2.py

module1.py:

def func1():
    return "This is function 1"

module2.py:

def func2():
    return "This is function 2"

main.pyでの使用方法:

from mypackage import module1, module2

print(module1.func1())
print(module2.func2())

これで、モジュールやパッケージを作成し、再利用可能なコードを効率的に管理できるようになります。

2. 標準モジュールの使用方法

Pythonには、多くの便利な標準ライブラリが付属しています。以下はよく使われる標準モジュールの例です。

2.1.mathモジュール: mathモジュールは、Pythonの標準ライブラリの一部で、数値計算に関する多くの関数を提供します。以下に、mathモジュールの主要な機能と使用方法を紹介します。

import math

# 平方根
print("Square root of 16:", math.sqrt(16))

# 冪乗
print("2 raised to the power 3:", math.pow(2, 3))

# 対数
print("Natural log of 10:", math.log(10))
print("Log base 10 of 10:", math.log10(10))

# 定数
print("Value of pi:", math.pi)
print("Value of e:", math.e)

# 角度変換
print("180 degrees in radians:", math.radians(180))
print("Pi radians in degrees:", math.degrees(math.pi))

# 三角関数
print("sin(30 degrees):", math.sin(math.radians(30)))
print("cos(60 degrees):", math.cos(math.radians(60)))
print("tan(45 degrees):", math.tan(math.radians(45)))

# 階乗
print("Factorial of 5:", math.factorial(5))

# 最大公約数
print("GCD of 48 and 64:", math.gcd(48, 64))

# 小数点以下の切り捨て、切り上げ
print("Floor of 3.7:", math.floor(3.7))
print("Ceil of 3.3:", math.ceil(3.3))

2.2.datetimeモジュール:datetimeモジュールは、日付や時刻の操作に関する多くの機能を提供するPythonの標準ライブラリです。このモジュールを使用することで、日付や時刻の計算、フォーマット変換、比較などが簡単に行えます。以下に、datetimeモジュールの主要な機能と使用方法を紹介します。

import datetime

# 現在の日時
now = datetime.datetime.now()
print("現在の日時:", now)

# 特定の日付と時刻の作成
birthday = datetime.date(1990, 7, 1)
print("誕生日:", birthday)

meeting_time = datetime.time(15, 30)
print("会議の時間:", meeting_time)

# 日時の操作
one_week_later = now + datetime.timedelta(weeks=1)
print("1週間後の日時:", one_week_later)

# フォーマットされた日時
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print("フォーマットされた現在の日時:", formatted_now)

# 文字列を日時に変換
date_string = "2024-06-06 14:30:00"
converted_date = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("変換された日時:", converted_date)

# 日付の比較
date1 = datetime.date(2024, 6, 6)
date2 = datetime.date(2023, 6, 6)
if date1 > date2:
    print(f"{date1}は{date2}より後の日付です。")
else:
    print(f"{date1}は{date2}より前または同じ日付です。")

2.3.osモジュール: osモジュールは、オペレーティングシステムとのインターフェースを提供するPythonの標準ライブラリです。ファイルやディレクトリの操作、環境変数の取得など、多くの機能を提供しています。以下に、osモジュールの主要な機能と使用方法を紹介します。

import os

# 現在の作業ディレクトリを取得
current_dir = os.getcwd()
print("現在の作業ディレクトリ:", current_dir)

# 新しいディレクトリの作成
os.mkdir('test_directory')
print("新しいディレクトリを作成しました。")

# ディレクトリの内容をリスト表示
contents = os.listdir('.')
print("ディレクトリの内容:", contents)

# ディレクトリの名前を変更
os.rename('test_directory', 'renamed_directory')
print("ディレクトリの名前を変更しました。")

# ファイルの作成
with open('renamed_directory/test_file.txt', 'w') as file:
    file.write("This is a test file.")
print("ファイルを作成しました。")

# ファイルサイズの取得
size = os.path.getsize('renamed_directory/test_file.txt')
print("ファイルサイズ:", size, "バイト")

# 環境変数の取得
path = os.getenv('PATH')
print("PATH環境変数:", path)

# システムコマンドの実行
os.system('echo "Hello from os.system()"')

# 作業ディレクトリの変更
os.chdir('renamed_directory')
print("作業ディレクトリを変更しました。")

# 新しい作業ディレクトリの確認
new_dir = os.getcwd()
print("新しい作業ディレクトリ:", new_dir)

# 元のディレクトリに戻る
os.chdir('..')
print("元のディレクトリに戻りました。")

# ディレクトリの削除
os.rmdir('renamed_directory')
print("ディレクトリを削除しました。")

Pythonのモジュールを使用することで、コードの再利用性を高め、管理しやすい構造を作ることができます。標準モジュールやカスタムモジュールを活用して、効率的なプログラミングを行いましょう。

購読
通知
0 Comments
Inline Feedbacks
View all comments