Python 初心者のアウトプットにおすすめ!手軽に作れるツール 6 選 -サンプルコードつき-

こんにちは!株式会社キカガクの中島です。
Python を学習してから、何かを作ってみたい・業務に活用したいという方は多いのではないでしょうか。実際、インプットしたら何かを作ってアウトプットする、というのは非常に効率的なプログラミングの学習方法です。

今回は、Python 初学者の方に向けて、アウトプットとしておすすめなプログラムやツールの開発方法をサンプルコードとともにご紹介していきます。
ポートフォリオの作成を通して、効率的に Python を習得していきましょう!

中島 健輔
中島 健輔

楽しく一緒に作っていきましょう!

Python で開発を行うために必要な「ライブラリ」について

Python で効率的に開発する際には「ライブラリ」の活用が重要です。このセクションでは、スムーズに開発できるよう、ライブラリについてご紹介します。

ライブラリとは?

Python のライブラリとは、あらかじめ作られている便利なコードを呼び出すためのショートカットと考えることができます。

例えば、画像の加工ツールを作りたいとします。Python でライブラリを使用せずに画像を加工するには、 JPEG や PNG などといった画像フォーマットの圧縮技術について熟知している必要があります。

しかし、画像処理を助けてくれるライブラリを用いることで、簡単に画像編集ができるようになります。
こちらの記事では、「Pillow」というライブラリを用いて、簡単に画像を加工する方法を解説しているので、ぜひ参考にしてみてください。

コードの実行環境:Google Colaboratory

Google Colaboratory(略称: Google Colab は、ブラウザを通じて Python コードを実行できる便利なサービスです。

キカガクの機械学習講師たちも日々の業務で活用しており、以下のような点で非常におすすめです!

  • 事前の環境設定がほとんど必要なく、操作もシンプル
  • コードの実行結果が迅速に得られ、開発作業がスムーズ
  • メモを同時に残すことができ、便利
  • 共有も簡単に行える

Google アカウントがあれば、Google Colab を使って手軽に Python の実行環境を整えることができます。さらに、機械学習に必要な外部ライブラリ(例えば NumPy など)もすでにインストールされています。

Google Colab については、こちらの記事で使い方をまとめています。ツール制作への取り組み前に、ぜひ一度ご確認ください。

Python 初心者でも作れるもの①:Excel 自動化ツール

Python では、Excel ファイルの読み込み・書き込み・加工・分析など、様々な操作を高速で行うことができます。また、Python は他のツールとの連携も可能であるため、Python を使った Excel 操作はぜひ覚えておきたいスキルと言えます。

Excel の自動化プログラムは、実現したい操作が人によって異なる場合が多いため、ここでは openpyxl と pandas というライブラリを用いた簡単な例をご紹介します。こちらをベースに、日々の集計業務やデータ分析の効率化に役立てていただければと思います。

上記のように、商品名・販売金額・販売個数を記録した Excel ファイルがあるとき、Python からファイルにアクセスし、消費税を入力した新しいファイルを生成・保存するプログラムを作成します。

また、「Total Sales」として合計金額も print 関数で出力しています。ここでは、15050 と出力されています。

Excel の自動化に便利なのが openpyxl というライブラリです。
このライブラリを使用することで、Excel ファイルの読み書きやセルの編集、新しいシートの追加などが可能になります。
まずはこのライブラリをインストールしていきます。

ライブラリのインストール
pip install pandas openpyxl

こちらがサンプルコードです。

Excel自動化ツール
import pandas as pd

# openpyxlでExcelファイルを開く
df = pd.read_excel('sample_data.xlsx', engine='openpyxl')

# データ分析の例:価格×個数で売上の合計金額を計算
total_sales = (df['Price']*df['sales figures']).sum()
print(f"Total Sales: {total_sales}")

# 新しい列「Tax」を追加し、売上に基づいた税額を計算する(例:税率10%)
df['Tax'] = df['Price'] * df['sales figures'] * 0.1

# 分析結果を含む新しいExcelファイルに保存
df.to_excel('analyzed_data.xlsx', engine='openpyxl', index=False)

# 処理完了のメッセージ
print("Data analysis is done and saved to analyzed_data.xlsx")

このようなプログラムを作成し、いつでも利用できるような状態にしておくことで、ワンクリックで Excel ファイルから必要な数値を算出できるツールの完成です!ぜひこのサンプルコードをベースに、業務効率化にお役立てください!

また、こちらの記事では、更に詳しく openpyxl の使い方を解説していますので、ぜひご確認ください。

Python 初心者でも作れるもの②:Web スクレイピングツール

Web スクレイピングとは、Web サイトから自動的に情報を収集する技術のことです。簡単に言うと、人間が Web サイトを見て情報を集める代わりに、プログラムが自動で Web ページを訪れ、必要なデータを抽出してくれるプロセスのことです。

スクレイピングをする際の注意!

自動で Web サイトから情報収集ができるスクレイピングは非常に便利ですが、サイトに過度な負担をかけたり、収集したデータを不適切に使用される可能性があるため、スクレイピングを禁止しているサイトもあります

サイトの利用規約の確認や、必要に応じてサイトの管理者にお問い合わせするなど、慎重に行っていきましょう。

こちらの記事では、 BeautifulSoup というライブラリを用いて、Web スクレイピングを行う方法をご紹介しています。初心者向けに丁寧に説明されていますので、ぜひこちらを参考に Web スクレイピングツールを作成してみてください!

Python 初心者でも作れるもの③:電卓ツール

次に、電卓の機能を Python で作ってみましょう!

起動すると、数値と演算子を入力するインプットが出力され、「=」が入力されると計算結果が表示されるという機能を持っています。実行するとこちらのように、数値と演算子を入力できるようになり、しっかりと計算できているのがわかりますね!

こちらがサンプルコードです。

calculate 関数が呼び出されると、ユーザーに数値と演算子を入力をしてもらうための input が表示されます。
「=」を入力すると数値と演算子の入力を終了し、計算結果を表示するようになっています。

電卓ツール
def calculate():
    print("簡易電卓アプリケーションです。終了するには '=' を入力してください。")
    result = float(input("数値を入力してください: "))

    while True:
        operation = input("操作を選択してください (+, -, *, /, =): ")
        
        if operation == '=':
            print(f"計算結果: {result}")
            break
        elif operation in ('+', '-', '*', '/'):
            number = float(input("数値を入力してください: "))
            if operation == '+':
                result += number
            elif operation == '-':
                result -= number
            elif operation == '*':
                result *= number
            elif operation == '/':
                if number != 0:
                    result /= number
                else:
                    print("0で割ることはできません!")
                    continue
        else:
            print("無効な操作です。")

calculate()

なお、サンプルコード中に while 文がありますが、これは「ある条件」のもとで処理を繰り返すときに用いる制御構文です。
詳しくはこちらの記事で解説していますので、ぜひご確認ください。

Python 初心者でも作れるもの④:ToDo リストツール

次は ToDo リストツールを作っていきましょう!

今回は「追加・表示・削除・終了」の 4 つのコマンドで ToDo リストを管理するツールを作成します。各コマンドは以下のように操作に対応しています。

  • 「追加」コマンド: ToDo リストを追加
  • 「表示」コマンド:現在の ToDo リストを表示
  • 「削除」コマンド: ToDo リストに登録しているタスクを削除
  • 「終了」コマンド: ToDo リストアプリを終了する

完成形はこちらのようなイメージです。
まずは追加コマンドで「記事制作、AB テスト、日報」という 3 つのタスクを追加します。その後に表示コマンドを入力することで、これら 3 つのタスクが表示され、さらに削除コマンドでタスクの削除もできることが分かります。
また、終了コマンドを入力し、ツールの実行を終了しても、再度起動すれば以前に登録したタスクがしっかりと残っていることも確認できます。

こちらのサンプルコードでは、先程完成イメージで示した通り、ToDo リストにタスクを追加・表示・削除する基本的な機能を実装しています。また、終了コマンドを入力すると、「todo_list.txt」というファイルを作成して、リストのデータを記録しておくことができるツールとなっています。

ToDoリストツール
import os

todo_file = 'todo_list.txt'

# todo_list.txtからToDoリストを読み込む関数
def load_todos():
    if os.path.exists(todo_file):
        with open(todo_file, 'r') as file:
            todos = file.readlines()
        todos = [todo.strip() for todo in todos]
    else:
        todos = []
    return todos

# todo_list.txtにタスクを書き込んで保存する関数
def save_todos(todos):
    with open(todo_file, 'w') as file:
        for todo in todos:
            file.write(todo + '\n')

# todoを追加→save_todos呼び出し
def add_todo(todos, item):
    todos.append(item)
    save_todos(todos)

# todoを削除→save_todos呼び出し
def delete_todo(todos, index):
    if 0 <= index < len(todos):
        todos.pop(index)
        save_todos(todos)

def main():
    todos = load_todos()

    while True:
        command = input("コマンドを入力してください(追加、表示、削除、終了): ")
        if command == '終了':
            break
        elif command == '追加':
            item = input("ToDo項目を入力してください: ")
            add_todo(todos, item)
        elif command == '表示':
            for i, todo in enumerate(todos):
                print(f"{i}: {todo}")
        elif command == '削除':
            index = int(input("削除するToDoの番号を入力してください: "))
            delete_todo(todos, index)
        else:
            print("無効なコマンドです。")

if __name__ == '__main__':
    main()

こちらのツールは、それぞれに役割の異なる 5 つの関数を相互に呼び出すことで機能を実装しています。
Python 関数の作り方について、詳しく知りたいという方はこちらの記事をぜひご確認ください。

Python 初心者でも作れるもの⑤:物体検出ツール

Python では、豊富なライブラリのおかげで、画像の中から特定の物体を検出するプログラムも簡単に実装できます。
今回は、OpenCV というライブラリを使用して、画像内にある人の顔を検出するツールを作ってみましょう!

まずは、OpenCV のインストールを行います。

openCVのインストール
pip install opencv-python

今回作成するツールでは、OpenCV ライブラリに含まれる、事前に訓練された顔検出モデルを使用します。
流れとしては、以下のような処理を行っています。

  • 画像内のオブジェクト検出に広く使用される「カスケード分類器」というモデルを face_cascade 変数に格納
  • 顔を検出する画像を読み込み
  • 検出精度向上のため、画像を白黒に変換
  • カスケード分類器で顔の検出を実行
  • 顔であると判定されるオブジェクトを四角形で囲む
  • show_image 関数で画像を表示

こちらがサンプルコードです。

顔検出ツール
import cv2
from matplotlib import pyplot as plt

# 画像を表示する関数
def show_image(img):
    # OpenCVはBGRで画像を扱うため、表示前にRGBに変換する
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    plt.imshow(img_rgb)
    plt.show()

# 顔検出用のカスケード分類器をロード
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 検出を行いたい画像を読み込み
img = cv2.imread('sample-img.webp')

# グレースケール画像に変換(検出精度向上のため)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 顔の検出を実行
faces = face_cascade.detectMultiScale(gray, 1.1, 4)

# 検出された顔の周りに矩形を描画
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 画像を表示
show_image(img)

たったこれだけのコードで画像中の顔を検出してアウトプットしてくれます。すごいですね、OpenCV !

OpenCV についてさらに詳しく知りたいと興味を持っていただいた方はこちらの記事がおすすめです!

Python 初心者でも作れるもの⑥:簡単なゲームプログラム

Python を使うことで、簡単なゲームプログラムも開発可能です。
これまでサンプルコードで提示してきたツールは、Python の実行環境があれば実装が可能であるため、Google Colaboratory などでもすべて実行が可能です。

一方で、こちらで紹介するのは iPad や iPhone の OS にアクセスし、UI を活用したゲームの実装方法です。
Pythonist 3 というアプリを導入することで、PC だけでなく iPad や iPhone の UI 操作が可能になるため、実際のアプリケーション開発に一歩近づいた内容となっています。

とはいえ、キカガクの最強講師がとてもわかりやすく、丁寧に解説しているので、とても読みやすい内容となっています。ぜひ挑戦してみてくださいね!

Python があまり得意ではない開発分野

このように、汎用性が高く人気の高い言語である Python ですが、その性質上、苦手な分野もあります。プログラミングを学習する際は、自身の目的や目標と照らし合わせて、最適な言語を優先的に学習するようにしてきましょう!

高度なグラフィックスとゲーム開発

Python は、ゲーム開発に使用されることがないわけではありませんが、主にプロトタイプや簡単なゲームに用いられることが多く、高度なグラフィックス処理や大規模なゲームエンジンの開発には向いていないとされています。

このようなプロダクトを開発する場合には、グラフィックス処理のために最適化され、リアルタイムで高速なパフォーマンスを発揮する C++ や C# のような言語がよく使用されています。

リアルタイムシステム

Python は、インタプリタ言語と呼ばれ、コードを一行ずつ読み込んで実行するため、コンパイラ言語(あらかじめ全てのコードを機械語に変換してから実行する言語)に比べて実行速度が遅くなるという特徴があります。
そのため、自動車のエアバッグの制御システムや、医療用のモニタリングシステムなど、実行速度が遅いと人の命に関わるようなシステムの開発には向いていません。

このように、非常にシビアな時間的成約を満たす必要のあるシステムの開発には、C 言語や C++ といった言語が用いられることが一般的です。

OS やハードウェアの直接制御

OS 開発やハードウェア制御のような、高速性や厳密なメモリ管理が必要な場面の開発も Python の得意分野ではないとされています。

Python は自動でメモリ管理をする言語ですが、これらの開発においては、メモリを非常に厳密に管理する必要があります。
そのため、開発者が直接メモリを制御できる C 言語などがよく用いられています。

Python 初心者がツールやプログラムを作成する際の注意点

今回は、Python 初心者の方でも挑戦しやすく、アウトプットとしておすすめなツールをご紹介しました。
最後に、このようなツールの制作を通してより多くのことを学べるよう、注意すべきポイントを 3 つご紹介します。

質問できる環境を用意しておく

Python は比較的覚えやすい言語と言われていますが、プログラミング学習の過程で挫折感を味わうことは珍しくありません。質問できる環境があると、困難に直面したときにサポートを受けることができ、学習を続けるモチベーションを保つことができます。

AI・データサイエンスを習得する長期コースのご紹介

弊社の AI ・データサイエンスを習得する長期コースでは、優秀な講師に質問しやすい仕組みが構築されており、いつでもサポートが受けられる環境が整っています。

84 %の受講生がプログラミング未経験者でありながら、AI エンジニアやデータサイエンティストへの転職を成功させた受講生も多くいらっしゃいます。

こちらの記事は、プログラミング未経験から AI エンジニアに転職された方のインタビュー記事です。興味のある方はぜひチェックしてみてください!