Pythonを学び始めたものの、何を作ればいいか分からないという初心者の方も多いのではないでしょうか?
私もその一人でしたが、実際に手を動かしていく中で、シンプルで実用的なプロジェクトをいくつか作成することができました。この記事では、私が実際に開発したPythonプロジェクトを紹介しつつ、作り方やアイデアのヒントを共有します。これらのプロジェクトを通じて、あなたもPythonのスキルを向上させましょう!
実際に作ったもの
djangoでのwebアプリケーション
簡単な概要
私が最初に取り組んだプロジェクトは、 pythonのウェブフレームワークdjangoを使ったウェブアプリケーションの作成です。ウェブフレームワークとはウェブアプリケーションを作るためのあらゆる機能が入った便利な設計図のようなもので、ログイン機能や、決済機能、データベースで膨大なデータを管理する機能だったりが含まれています。
webフレームワークは他にもFlaskやFastAPI,streamlitなど数多く存在しますが、最も多機能で、最も難度が高いのがこのdjangoです。リストにタスクを追加したり、完了したタスクをチェックしたりできる基本的な機能を備えています。
このdjngoを使ってログイン機能を持たせたSNSのようなサービスを作りました。
開発の背景と動機
フロントもバックエンドもこなせるフルスタックエンジニアとして、稼ぎたいと考えていたので広く学べるであろうと思い取り組みました。ただ実際には、初学者では難度が高く、公開までは辿り着けたもののクオリティが低く今はもう運用を停止しています。pythonの基礎に加え、セキュリティ関連やcssなど必要な技術が多くめちゃめちゃ大変でした。
なぜ、バックエンドとフロントを分けるのか、フルスタックエンジニアがいかに大変かということを肌感覚で知れたのはいい経験でした。
確かにできることも他のwebフレームワークよりも多く、自由度も高く学びがいが多いのですが、初学者がいきなり取り組むにはハードルが高く鉄の意志が必要になります。
必要な技術
- djangoの基本操作
- html関連
- サーバー関連
競艇予想AI
概要
私が次に取り組んだプロジェクトは、競艇の予想をするAIの開発です。必要なデータをウェブ上からダウンロードし、データを処理した上でモデル(アルゴリズム)をpythonの機械学習ライブラリで作り、そのモデルを実際の出走表データを読み込んで、予想させるというものです。pythonはAI開発に強いと言われていますが、その理由の一つに機械学習ライブラリが豊富にあることです。分類手法、クラスタリングや回帰などいろいろ試してみましたが、lightGBMが一番制度の高い予想ができるというのが今の所の結論です。
開発の背景と動機
最初は競馬でやってみたのですが、馬一頭のサンプルデータが少なく精度も今ひとつだったので競艇でAIを作ることにしました。予測の精度としてはまずまずの成果が得られ、こちらは今も運用を続けていますが、学習手法や特徴量のエンジニアリングなどで更に制度の向上が見込めそうなので、今も開発を続けています。
必要な技術
- 機械学習ライブラリのスキル(lightGBM, scikit-learn, PyTorchなど)
- webスクレイピング
- pandas
- 統計学や数学の知識
streamlitでのGUI
概要
私が次に挑戦したのは、streamlitを使ってのデータを可視化するアプリケーションです。ストリームリットは非常にシンプルなwebフレームワークで、データの可視化に優れています。今回は、先に紹介した、競艇予想AIの予想結果のデータをweb上に表示するアプリを作りました。
開発の背景と動機
競艇予想の結果はCSVファイルに無機質に出力されるだけなので、もっと視認性を高く必要な予想にアクセスして、web上で見れるようにしたいと思ったのが開発した理由です。streamlitはgithubにデプロイされたリポジトリを使って後悔することができるので、サーバー代もかからず、githubの基本を学べたので作ってよかったです。
必要な技術
- streamlitの基本操作
- githubの基本操作
- pandas
twitter bot
概要
最後は、twitterのbotアプリです。twitter botとは定期的にpostするのですが、『何時に、内容、頻度』などをpythonで指定するコードを書いて作ります。twitterに限らず、lineやInstagramにもAPIと呼ばれる投稿などを管理する開発者向けのサービスが展開されています。このAPIを使って、楽天市場の売れ筋スイーツベスト5を定期投稿するbotを作りました。
開発の背景と動機
APIというのが、よくわかっていなかったので、勉強のつもりでAPIを使うこのアプリを作ってみることにしました。作ってみた感想としては非常に簡単で、初心者でも誰でも簡単に作れます。ちなみにlineのAPIを使って、ライン友達登録している人にメッセージを送信するアプリも作りましたが、こちらも簡単で且つ、実用的なアプリが作れそうなので初学者の方にはオススメの成果物だと思います。
必要な技術
- API操作
- python基本操作
5. まとめ
Pythonで作りたいものが見つからないと感じている初心者の方に向けて、私が実際に開発したシンプルで実用的なプロジェクトを紹介しました。これらのプロジェクトは、Pythonの基本的なスキルを磨きつつ、実際に使えるツールを作る良い機会となります。ぜひ、自分でも試してみて、Pythonの楽しさを体感してください!
さらに詳しい情報や、他のプロジェクトアイデアについて知りたい方は、ぜひコメント欄で質問してください。