これまでの「ゼロから学ぶPython」シリーズでは、
基礎文法から標準ライブラリ、ファイル操作、データ可視化までを学んできました。最終回となる今回は、いよいよ実践編。
これまでの知識を活かして小さな実用ツール(ミニプロジェクト)を作ってみましょう。
実際に「自分の手で動くプログラム」を完成させると、理解が一気に深まり、次のステップ(副業・実務・ポートフォリオ作成)への自信につながります。
ミニプロジェクトのテーマ紹介
今回は、初心者でも取り組みやすく、実際の生活や仕事でも役立つ3つの題材を用意しました。
- ToDoリストアプリ(テキスト保存機能付き)
- 天気情報スクリプト(API利用)
- 画像一括リサイズツール(Pillowライブラリ使用)
どれも「今すぐ使える実用性」があるテーマです。
自分の興味に合わせて、好きなものから試してみてください。
サンプルプロジェクト①:ToDoリストアプリ
Pythonの基本であるファイル操作・ループ・条件分岐を使って作る簡易アプリです。
テキストファイルにタスクを保存することで、実用性のある小さなツールになります。
# ToDoリストアプリ
# タスクを追加・削除して、テキストファイルに保存するシンプルなプログラム
def show_tasks(tasks):
print("==== 現在のタスク ====")
for i, task in enumerate(tasks, 1):
print(f"{i}. {task}")
# タスクを読み込む
try:
with open("tasks.txt", "r", encoding="utf-8") as f:
tasks = [line.strip() for line in f]
except FileNotFoundError:
tasks = []
while True:
show_tasks(tasks)
action = input("追加(a) / 削除(d) / 終了(q): ")
if action == "a":
new_task = input("新しいタスクを入力: ")
tasks.append(new_task)
elif action == "d":
num = int(input("削除する番号: "))
if 1 <= num <= len(tasks):
tasks.pop(num - 1)
elif action == "q":
break
# 保存
with open("tasks.txt", "w", encoding="utf-8") as f:
for task in tasks:
f.write(task + "\n")
Colabでの実行結果
- ファイルが見つからない場合(
FileNotFoundError)は自動で新規作成。 - タスク削除時の番号指定に注意(存在しない番号を指定すると
IndexError)。
サンプルプロジェクト②:天気情報スクリプト
API(外部サービス)を使ってデータを取得する例です。
Webから自動で情報を取ってくる体験は、プログラミングの面白さを実感できる瞬間です。
# 天気情報を取得するスクリプト(OpenWeatherMap APIの例)
import requests
API_KEY = "あなたのAPIキー"
CITY = "Tokyo"
url = f"https://api.openweathermap.org/data/2.5/weather?q={CITY}&appid={API_KEY}&lang=ja&units=metric"
response = requests.get(url)
data = response.json()
print(f"都市: {data['name']}")
print(f"天気: {data['weather'][0]['description']}")
print(f"気温: {data['main']['temp']}℃")
print(f"体感気温: {data['main']['feels_like']}℃")
print(f"湿度: {data['main']['humidity']}%")
print(f"風速: {data['wind']['speed']} m/s")
Colabでの実行結果
OpenWeatherMap APIキーの取得方法
- OpenWeatherMap公式サイトにアクセスし、無料アカウントを作成。
- ログイン後、「My API keys」ページに進みます。
- 「Default key」として自動発行されるキーをコピー。
- このAPIキーをPythonスクリプトの
API_KEYに貼り付けます。
新しいAPIキーは発行直後に使えない場合があります。最大で2時間ほど待ってから試してみましょう。
よくあるエラーと対処法
- 401エラー(Invalid API key): 入力ミス、キーの未有効化、削除済みキーの使用が原因。
- ConnectionError:ネットワークやVPN環境を確認。
- KeyError:データが欠けているときに発生。
print(data)でJSON構造を確認しましょう。
サンプルプロジェクト③:画像一括リサイズツール
Pillow(PIL)という画像処理ライブラリを使い、フォルダ内の画像を一括でリサイズするスクリプトです。
ブログ運営や資料作成など、日常でも使える便利ツールになります。
# Pillowを使ってフォルダ内の画像を一括リサイズ
from PIL import Image
import os
input_folder = "images"
output_folder = "resized"
os.makedirs(output_folder, exist_ok=True)
for file in os.listdir(input_folder):
if file.endswith((".jpg", ".png")):
img = Image.open(os.path.join(input_folder, file))
img_resized = img.resize((300, 300))
img_resized.save(os.path.join(output_folder, file))
print(f"保存しました: {file}")
フォルダ内の画像を一括で整形できるため、データ前処理やWeb素材作成にも役立ちます。
さらに、GUI(ウィンドウ)で操作できる改良版スクリプトも公開しています。
圧縮前

圧縮後(JPEG品質70%設定)

- 画像サイズを変更するときは、縦横比を意識してトリミングする方法もあります。
- 大きな画像を一括処理する場合は、メモリエラーを防ぐために逐次処理を意識しましょう。
まとめと次へのステップ
全5回のシリーズを通して、Pythonの基礎から標準ライブラリ、ファイル操作、データ可視化、そして実用的なツール作成までを学びました。
今回紹介したミニプロジェクトは、あくまで“入り口”です。
小さな成功体験を積み重ねることで、応用力がぐんと伸びます。
「こんなツールがあったら便利だな」と思ったら、それをPythonで作ってみることが上達への最短ルートです。
もし動かないコードやエラーに遭遇しても大丈夫。
AI(ChatGPTなど)にエラーメッセージを貼って質問すれば、具体的な解決策をすぐに得られます。
筆者も実際、AIに相談しながらコードを改良してきました。
あなたの次のステップは、今回のプロジェクトを「自分仕様」に進化させることです。
たとえば、
- ToDoアプリに「期限」や「完了フラグ」を追加する
- 天気スクリプトをSlack通知に変える
- 画像リサイズをWebアプリ化して共有する
こうした改良を積み重ねるうちに、「作りたいものを自分で作れる力」が確実に身につきます。
最後に
Pythonを学ぶ最大のコツは、「手を動かすこと」です。
あなたも今日から、学びを形にする一歩を踏み出しましょう。

