Py初めてのPython

Day 4関数・モジュール(再利用と部品化)

importと標準ライブラリ、pip(requests等)の存在

既にある部品(モジュール)をimportで取り込み、pipで外部ライブラリを追加する仕組みを知る。

自分で書かず、既にある部品を使う

関数は自分で部品を作る仕組みでした。一方、世の中には既に他の人が作った便利な部品のかたまりが大量にあります。これをモジュールやライブラリと呼びます。import(インポート、取り込む)という命令で、それらを自分のプログラムから使えるようにします。

PYTHON
import math

print(math.sqrt(16))   # 4.0(平方根)
print(math.pi)         # 3.141592653589793
math モジュールを import して平方根や円周率を使う
  • import math で math という部品箱を丸ごと取り込む
  • 使うときは math.sqrt のように「箱の名前.機能の名前」で呼ぶ
  • sqrt は square root(平方根)の略。ドットの左が出どころを表す

標準ライブラリ(最初から入っている部品)

Pythonをインストールすると、最初から使えるモジュール群が付いてきます。これを標準ライブラリと呼びます。追加のインストール無しで import するだけで使えます。代表的なものをいくつか紹介します。

PYTHON
import random
import datetime

print(random.randint(1, 6))        # 1〜6のランダムな整数(サイコロ)
print(datetime.date.today())       # 今日の日付
random(乱数)と datetime(日付時刻)は標準ライブラリ

必要な機能だけ取り込む書き方

from モジュール名 import 機能名 と書くと、その機能だけを直接使えます。例えば from math import sqrt と書けば、以降は math. を付けずに sqrt(16) と書けます。どちらの書き方でも動きますが、出どころが分かりやすい import math 形式も広く使われます。

pip(外部ライブラリを追加する道具)

標準ライブラリに無い機能は、外部ライブラリとして配布されています。それらを取り込むには、まずインストールが必要です。この「Python用の部品を追加でインストールする道具」が pip(ピップ)です。代表例として、Webからデータを取ってくる requests(リクエスツ)というライブラリがあります。

ターミナル
pip install requests
ターミナルで requests をインストールする(Pythonコードではなくコマンド)
PYTHON
import requests

response = requests.get("https://example.com")
print(response.status_code)   # 200 なら取得成功
インストール後は import して使える

import できないエラーの多くはインストール漏れ

ModuleNotFoundError: No module named 'requests' のようなエラーは、そのライブラリが未インストールなことが原因のことが多いです。標準ライブラリなら import だけで動きますが、requests のような外部ライブラリは pip install が先に必要です。エラー文の中のモジュール名をよく見ましょう。

なぜ自分で作らずライブラリを使うのか

Web通信や日付計算のような一般的な処理は、既に多くの人に使われ、検証された実装があります。自分でゼロから書くより、信頼できるライブラリを使うほうが速く、バグも少ないです。「車輪の再発明を避ける」という言い方をします。

AIにはこう聞く

「この処理をやりたい。標準ライブラリで実現できる? それとも pip で入れる外部ライブラリが必要?」と聞くと、適したモジュール名と最小の使い方を教えてくれます。提示されたライブラリ名を鵜呑みにせず、公式ドキュメントで存在と用途を確認する習慣を付けましょう。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

import requests と書いたら ModuleNotFoundError: No module named 'requests' が出ました。最初に疑うべきことは?

Q2

追加のインストール無しに import だけで使えるのはどれ?

Q3

「標準ライブラリ」と「pipで入れる外部ライブラリ」の違いを説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。