このセクションでは、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つの選択肢があります。
- システム全体にインストールする: この場合、インストールしたライブラリは、システム上のすべての Python プロジェクトで利用できるようになります。
- プロジェクトごとに個別の環境(仮想環境)にインストールする: この場合、インストールしたライブラリは、特定のプロジェクト内でのみ利用できます。これにより、プロジェクト間で異なるバージョンのライブラリを使い分けることが可能になります。
どの方法を選ぶかは、開発のスタイルやプロジェクトの要件によります。例えば、常に最新版のライブラリを使用したい場合や、シンプルな環境を好む場合は、システム全体へのインストールが適しているかもしれません。一方、複数のプロジェクトを管理していて、プロジェクトごとに異なるバージョンのライブラリを使い分けたい場合は、仮想環境の利用が適しています。
仮想環境の作成や管理方法については、後の 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()