Skip to content

便利な機能を使いこなそう

公開日:December 14, 2024更新日:December 14, 2024
pythoncoding📄

このセクションでは、Python のプログラミングをさらに便利にしてくれる機能について学んでいきましょう!これまで学んできた基本的な文法に加えて、これらの機能を使いこなすことで、より高度なプログラムを効率的に書くことができるようになります。

1. モジュールって何?

Python の「モジュール」とは、特定の機能を持ったプログラムをまとめたファイルのことです。モジュールには、関数やクラスなどが含まれていて、他のプログラムから呼び出して使うことができます。

モジュールを使うメリットは、次のとおりです。

  • コードの再利用: よく使う機能をモジュールとしてまとめておけば、色々なプログラムで使い回すことができます。
  • コードの整理: プログラムを機能ごとにモジュールに分割することで、コードが整理されて、読みやすくなります。
  • 名前空間の管理: モジュールを使うことで、変数名や関数名の衝突を避けることができます。

Python には、標準で提供されている「標準モジュール」と、ユーザーが自分で作成する「自作モジュール」、そして外部の開発者が作成して公開している「外部ライブラリ(またはサードパーティ製ライブラリ)」があります。

import の使い方

モジュールを使うには、import 文を使って、モジュールを読み込む必要があります。

python
import モジュール名

例えば、math モジュール(数学関連の関数を提供するモジュール)を読み込むには、次のように書きます。

python
import math

モジュール内の関数やクラスを使うには、モジュール名.関数名 または モジュール名.クラス名 のように、モジュール名の後に .(ドット)を付けて、関数名やクラス名を指定します。

python
import math

x = math.sqrt(16)  # math モジュールの sqrt() 関数(平方根を計算する関数)
print(x)  # 4.0

as キーワードを使うと、モジュールに別名を付けることができます。長いモジュール名を短くしたい場合などに便利です。

python
import math as m

x = m.sqrt(16)
print(x)  # 4.0

from キーワードを使うと、モジュール内の特定の関数やクラスだけを読み込むことができます。

python
from math import sqrt

x = sqrt(16)  # モジュール名を付けずに、直接関数を呼び出せる
print(x)  # 4.0

よく使う標準モジュール

Python には、たくさんの便利な標準モジュールが用意されています。ここでは、その中でも特によく使われるモジュールをいくつか紹介します。

math

math モジュールは、数学関連の関数を提供します。

python
import math

print(math.pi)  # 円周率
print(math.sin(0))  # サイン(正弦)
print(math.cos(0))  # コサイン(余弦)
print(math.tan(0))  # タンジェント(正接)
print(math.log(10))  # 自然対数
print(math.log10(100)) # 常用対数
print(math.ceil(3.14)) # 小数点以下切り上げ
print(math.floor(3.14)) # 小数点以下切り捨て
print(math.factorial(5)) # 階乗

random

random モジュールは、乱数(ランダムな数)を生成するための関数を提供します。

python
import random

print(random.random())  # 0.0 以上 1.0 未満のランダムな浮動小数点数
print(random.randint(1, 10))  # 1 から 10 までのランダムな整数
print(random.choice(["apple", "banana", "orange"]))  # リストからランダムに要素を選択
print(random.shuffle([1,2,3,4,5])) # リストの要素をランダムに並び替え

datetime

datetime モジュールは、日付や時刻を扱うためのクラスを提供します。

python
import datetime

now = datetime.datetime.now()  # 現在の日時を取得
print(now)

today = datetime.date.today()  # 今日の日付を取得
print(today)

# 日付や時刻のフォーマットを指定して文字列に変換
print(now.strftime("%Y-%m-%d %H:%M:%S"))

# 文字列から日付や時刻オブジェクトを作成
date_str = "2023-12-25"
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d").date()
print(date_obj)

os

os モジュールは、OS(オペレーティングシステム)の機能を利用するための関数を提供します。例えば、ファイルやディレクトリの操作などです。

python
import os

print(os.getcwd())  # 現在のディレクトリ(カレントディレクトリ)を取得
#os.mkdir("new_dir")  # 新しいディレクトリを作成
#os.rename("old_name.txt", "new_name.txt")  # ファイル名を変更
#os.remove("file.txt")  # ファイルを削除

# ディレクトリ内のファイル一覧を取得
files = os.listdir(".")
for file in files:
    print(file)

※コメントアウトした行を必要に応じて、実行してみてください。

2. ファイルを操作しよう

プログラムからファイルを読み込んだり、ファイルに書き込んだりする方法を学びましょう。

ファイルの読み込み

ファイルを読み込むには、open() 関数を使ってファイルを開き、read() メソッドや readline() メソッドなどを使って内容を読み込みます。

python
# ファイルを開く(読み込みモード)
file = open("my_file.txt", "r", encoding="utf-8")

# ファイルの内容をすべて読み込む
content = file.read()
print(content)

# ファイルを閉じる
file.close()

open() 関数の第 1 引数にはファイル名(またはファイルのパス)、第 2 引数にはファイルをどのモードで開くかを指定します("r" は読み込みモード)。また、encoding="utf-8" のように文字コードを指定することもできます(日本語を扱う場合は指定した方が安全です)。

ファイルを 1 行ずつ読み込むには、readline() メソッドを使います。

python
# ファイルを開く(読み込みモード)
file = open("my_file.txt", "r", encoding="utf-8")

# ファイルの内容を 1 行ずつ読み込む
line = file.readline()
while line:
    print(line, end="")  # 改行を抑制するために end="" を指定
    line = file.readline()

# ファイルを閉じる
file.close()

with 文を使うと、ファイルの閉じ忘れを防ぐことができるので便利です。

python
# with 文を使った書き方
with open("my_file.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)

# with ブロックを抜けると、自動的にファイルが閉じられる

ファイルの書き込み

ファイルに書き込むには、open() 関数を使ってファイルを開き、write() メソッドを使って内容を書き込みます。

python
# ファイルを開く(書き込みモード)
file = open("my_file.txt", "w", encoding="utf-8")

# ファイルに書き込む
file.write("Hello, World!\n")
file.write("This is a test.\n")

# ファイルを閉じる
file.close()

open() 関数の第 2 引数に "w" を指定すると、書き込みモードでファイルが開かれます。ファイルが既に存在する場合は、内容が上書きされるので注意してください。

ファイルに追記したい場合は、"a"(追記モード)を指定します。

python
# ファイルを開く(追記モード)
file = open("my_file.txt", "a", encoding="utf-8")

# ファイルに追記する
file.write("This is an additional line.\n")

# ファイルを閉じる
file.close()

with 文を使った書き込みは、次のようになります。

python
# with 文を使った書き方
with open("my_file.txt", "w", encoding="utf-8") as file:
    file.write("Hello, World!\n")
    file.write("This is a test.\n")

# with ブロックを抜けると、自動的にファイルが閉じられる

3. 外部ライブラリを活用しよう

Python の魅力の一つは、外部ライブラリの豊富さです。外部ライブラリとは、Python の標準モジュールには含まれていない、サードパーティの開発者によって作成・公開されているモジュールのことです。これらのライブラリを活用することで、データ分析、Web アプリケーション開発、機械学習など、様々な分野のプログラムを効率的に開発することができます。

pip の使い方

外部ライブラリをインストールするには、pip というパッケージ管理ツールを使います。pip は、Python Package Index (PyPI) というウェブサイトで公開されているライブラリを簡単にインストール・管理できるツールです。

ライブラリのインストール

pip を使ってライブラリをインストールするには、ターミナルまたはコマンドプロンプトで次のコマンドを実行します。

bash
pip install ライブラリ名

例えば、requests というライブラリ(Web サイトから情報を取得する際などに便利なライブラリ)をインストールする場合は、次のようになります。

bash
pip install requests

インストール済みライブラリの確認

インストール済みのライブラリを確認するには、次のコマンドを実行します。

bash
pip list

ライブラリのアンインストール

ライブラリをアンインストールするには、次のコマンドを実行します。

bash
pip uninstall ライブラリ名

特定のバージョンのインストール バージョンを指定してインストールするには、次のようにします。

bash
pip install ライブラリ名==バージョン

ライブラリのアップグレード インストール済みのライブラリをアップグレードするには、次のコマンドを実行します。

bash
pip install --upgrade ライブラリ名

外部ライブラリのインストール先について

pip install コマンドで外部ライブラリをインストールする際、インストール先は主に2つの選択肢があります。

  1. システム全体にインストールする: この場合、インストールしたライブラリは、システム上のすべての Python プロジェクトで利用できるようになります。
  2. プロジェクトごとに個別の環境(仮想環境)にインストールする: この場合、インストールしたライブラリは、特定のプロジェクト内でのみ利用できます。これにより、プロジェクト間で異なるバージョンのライブラリを使い分けることが可能になります。

どの方法を選ぶかは、開発のスタイルやプロジェクトの要件によります。例えば、常に最新版のライブラリを使用したい場合や、シンプルな環境を好む場合は、システム全体へのインストールが適しているかもしれません。一方、複数のプロジェクトを管理していて、プロジェクトごとに異なるバージョンのライブラリを使い分けたい場合は、仮想環境の利用が適しています。

仮想環境の作成や管理方法については、後の Tips 記事で詳しく説明しますので、そちらを参照してください。

人気のライブラリ

ここでは、Python で特によく使われる人気の外部ライブラリをいくつか紹介します。

NumPy

NumPy は、数値計算を効率的に行うためのライブラリです。多次元配列の操作や、線形代数、フーリエ変換などの高度な数学関数を提供します。データ分析や機械学習などの分野で広く使われています。

python
import numpy as np

# NumPy 配列の作成
array = np.array([1, 2, 3, 4, 5])
print(array)

# 配列の演算
print(array + 1)
print(array * 2)

# 多次元配列
matrix = np.array([[1, 2], [3, 4]])
print(matrix)

Pandas

Pandas は、データ分析を効率的に行うためのライブラリです。表形式のデータを扱うための DataFrame というデータ構造を提供し、データの読み込み、加工、集計、可視化などを簡単に行うことができます。

python
import pandas as pd

# CSV ファイルから DataFrame を作成
data = pd.read_csv("data.csv")

# データの表示
print(data)

# データの概要を表示
print(data.describe())

# データの抽出
print(data["列名"])

Matplotlib

Matplotlib は、データをグラフなどで可視化するためのライブラリです。折れ線グラフ、棒グラフ、散布図、ヒストグラムなど、様々な種類のグラフを描画することができます。

python
import matplotlib.pyplot as plt
import numpy as np

# データの生成
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 折れ線グラフの描画
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.title("Sine Curve")
plt.show()