search
LoginSignup
246

More than 1 year has passed since last update.

posted at

updated at

Organization

Python開発者のためのクールなPythonプロジェクト案10選

本記事は、Claire D. Costa氏による「10 Cool Python Project Ideas for Python Developers」(2020年9月5日公開)の和訳を、著者の許可を得て掲載しているものです。

Python開発者のためのクールなPythonプロジェクト案10選

Pythonで作れる面白いアイディアとプロジェクトのリスト

Cool Python Project Ideas for Python Developers
Photo by Andrea Piacquadio from Pexels

はじめに

「Pythonをコーディングする喜びは、少しのクリアなコードで沢山のアクションを表現する、短く簡潔で読みやすいクラスを見ることであり、読者を退屈させる、膨大なつまらないコードではない。」Guido van Rossum

Pythonは世界で最も使われているプログラミング言語の1つで、その理由は、業界のさまざまな分野に適した汎用性の高さにあると言えます。Pythonを使えば、ウェブだけでなく、デスクトップやコマンドラインでもプログラムを開発できます。Pythonは、学生から中級者、上級者、プロまで、さまざまなスキルレベルのプログラマに適しています。しかし、どんなプログラミング言語も常に学習が必要であり、Pythonも同様です。

もし本当に深い実用的な知識を得たいのであれば、空き時間に専念するだけでなく、Pythonのよりよい活用方法を教えてくれるクールなプロジェクトに取り組むのが、Pythonに真剣に取り組むには一番です。

知っていましたか?

Stackoverflowによれば、Pythonは最も好まれる言語であり、開発者の大半がPythonを使っています。

2020年の新人向けトップPython面接の質問と回答
​​最もよく聞かれるPython面接の質問と回答を新人向けにまとめています。
blog.digitalogy.co

プロジェクトのプラットフォームの選択

Pythonは正しく使えば、とても汎用性の高いプログラミング言語になります。この言語で沢山の気の利いたプログラムを作って、能力を強化できます。特にPythonなどのプログラミング言語を学ぶには、理論より実践の知識に触れることが何よりも重要です。

しかし、今回用意している楽しいプロジェクトを始める前に、どのプラットフォームで作業するか決める必要があります。この記事で紹介するプロジェクトのプラットフォームは、以下の3つに分類されます。

●ウェブ

ウェブアプリケーションを構築すると、インターネットを介して誰でもどこからでもアクセスできるようになります。そのためには、アプリケーションの視覚的な部分であるフロントエンドと、ビジネスロジックを実装するバックエンドの作業が必要です。DjangoFlaskWeb2Pyなどのツールやフレームワークは、そのための沢山の選択肢の一部です。

●デスクトップGUI

デスクトップアプリケーションもとてもよく使われており、かなりの数のユーザーが利用しています。PythonのPySimpleGUIパッケージを使えば、必要なすべての要素を構築でき、とても容易に開発できます。PyQt5フレームワークは、高度なGUIを構築する要素も提供しますが、習得には時間がかかります。

●コマンドライン

コマンドラインプログラムは、コンソールウィンドウ上でのみ動作し、GUIは一切ありません。ユーザーとの対話はコマンドを介して行われ、プログラムと対話する最も古い方法ですが、GUIがないからと言って、有用性がないということではありません。何百ものトップ企業が、日常のビジネス活動をコマンドラインプログラムに依存しています。構築には、docoptPython Fireplaccliffなどのツールが使えます。

「Pythonは、Google創業時から重要な役割を果たしており、システムが成長して進化しても変わりません。現在、何十人ものGoogleエンジニアがPythonを使っており、Python技術者をさらに求めています。」Peter Norvig(Google検索品質担当ディレクター)

Pythonを使っている世界的企業10社
Pythonは、IT業界の巨人が積極的に使っています。
towardsdatascience.com

Python開発者のためのPythonプロジェクト案

使うプラットフォームが決まったら、すぐにプロジェクトを始めましょう。以下では、すべての技術レベルの開発者を対象とした楽しいプロジェクトを紹介します。これらはPythonの技術と自信を次のレベルに引き上げる上で重要な役割を果たします。

1. コンテンツ収集ツール

content aggregator tool
Photo by Obi Onyeador on Unsplash

インターネットは、常にオンラインで何かを検索している何百万人もの人々にとって、主要な情報源です。特定のトピックに関する大量の情報を探している人は、コンテンツ収集ツールを使って時間を節約できます。

コンテンツ収集ツールとは、大量のウェブサイトから特定のトピックに関する情報を1ヶ所に収集して提供するツールです。HTTPリクエストを処理するリクエストライブラリ、必要な情報を解析してスクレイピングするBeautifulSoup、収集した情報を保存するデータベースを使って作ることができます。

2. URL短縮ツール

URLは、ウェブページやファイルなど、インターネット上のあらゆるリソースに導いてくれる主要な情報源です。URLはとても長く特殊な文字になることがあります。URL短縮ツールは、このようなURLの文字数を減らし、覚えやすく、扱いやすくするという重要な役割を果たします。

URL短縮ツールは、randomモジュールとstringモジュールを使って、入力された長いURLから短いURLを新しく生成するものです。その後、長いURLと短いURLをマッピングしてデータベースに保存し、ユーザーが将来的に使えるようにする必要があります。

無料で参加できるコース

無料DjangoチュートリアルーDjango1.10を試す|URL短縮ツールを作る
すべてはあるアイディアから始まりました。私は自由が欲しかった…とても。仕事からの自由、退屈からの自由、そして何よりも…
www.udemy.com

3. ファイル名変更ツール

File Renaming tool created with Python
Photo by Brett Sayles from Pexels

仕事で大量のファイルを頻繁に管理する必要がある場合、ファイル名変更ツールを使って大幅に時間を節約できます。要するに、定義した最初の識別子を使って、何百ものファイル名を変更します。これは、コードで定義するか、ユーザーが指定できます。

Pythonのsysshutilosなどのライブラリを使って、ファイル名を瞬時に変更できます。最初のカスタム識別子をファイルに追加するオプションを実装するには、regexライブラリを使ってファイルの命名パターンを一致させます。

4. ディレクトリツリー生成ツール

ディレクトリツリー生成ツールは、システム内のすべてのディレクトリを視覚化し、ディレクトリ間の関係を識別するツールです。ディレクトリツリーとは、どれが親ディレクトリで、どれがそのサブディレクトリかを示すものです。このようなツールは、沢山のディレクトリを操作し、その位置を分析する場合に役立ちます。ファイルとディレクトリをリストアップするosライブラリとdocoptフレームワークを使って構築できます。

5. MP3プレーヤー

mp3 player built by Python
Photo by Mildly Useful on Unsplash

音楽を聴くのが好きなら、Pythonで音楽プレーヤーを作れると知って驚くでしょう。再生用の基本的なコントロールセットがあるグラフィカルインターフェースを持つMP3プレーヤーを構築でき、アーティスト、メディアの長さ、アルバム名など内部のメディア情報を表示することもできます。

フォルダ移動や、mp3ファイル検索オプションもあります。simpleaudiopymediapygameライブラリを使えば、Pythonでメディアファイルの操作が容易になります。

6. 〇✕ゲーム

〇✕ゲームは、有名な古典的ゲームです。シンプルで楽しく、必要なプレーヤーは2人だけです。目標は、3x3の格子上に、✕か〇が3つ連続するように縦か横か斜めの線を引くことで、最初にできた人が勝者です。このようなプロジェクトには、必要なグラフィックとオーディオがすべて含まれている、Pythonのpygameライブラリを使うことができます。

Tic tac toe
Image by OpenClipart-Vectors from Pixabay

チュートリアル

楽しいPythonゲーム開発プロジェクト

7. クイズアプリ

Pythonで作れるもう1つの人気で楽しいプロジェクトは、クイズアプリです。Kahootは学生が楽しく学べることで有名です。このアプリは、複数の選択肢がある質問を提示し、ユーザーに選択を求め、その後、正しい選択肢を表示します。

クイズで使う質問と回答を追加する機能を作ることもできます。クイズアプリを作るには、すべての質問、選択肢、正解、ユーザーのスコアを保存するデータベースが必要です。

8. 電卓

Developing a calculator with Python
Photo by Eduardo Rosas from Pexels

もちろん、楽しみのためでも、新しいプログラミング言語を学びながら電卓を開発するという昔からのアイディアを見逃してはいけません。すでに電卓を開発したことがある場合は、より優れたGUIを使って改良し、現在のOSに搭載されている最新バージョンに近付けることができるでしょう。tkinterパッケージを使って、プロジェクトにGUI要素を追加します。

9. バーチャルアシスタント

Build a virtual assistant with Python
Photo by BENCE BOROS on Unsplash

最近のほとんどのスマートフォンには、独自のスマートアシスタントが搭載されています。これは、音声やテキストでコマンドを受け取り、電話、メモ、タクシーの予約などを管理します。GoogleアシスタントAlexaCortanaSiriなどの例があります。pyaudioSpeechRecognitiongTTSなどのパッケージやWikipediaを使って作ることができます。目標は、音声の録音、音声のテキスト変換、コマンド処理、コマンドに応じたプログラム動作です。

無料で参加できるコース

無料PythonチュートリアルーPythonを学ぶ|バーチャルアシスタントを作る
私は独学で学んだプログラマで学習愛好家です。私の専門分野は主にAI、Ruby on Rails…
www.udemy.com

10. 通貨コンバータ

その名の通り、基本通貨で希望の値を入力し、ターゲット通貨で変換された値を返す通貨コンバータを構築します。より正確な変換を行うために、インターネットから最新の変換レートを取得する機能をコーディングすることをお勧めします。これも tkinterパッケージを使ってGUIを構築できます。

構築すべきPythonプロジェクト案をもっと見る

おわりに

Pythonを使って作れる面白いアイディアやプロジェクトを紹介しました。Pythonは、あらゆる種類や規模のアプリケーション開発にとても便利なプログラミング言語だと言えます。さらに、Pythonが提供するパッケージは、開発プロセスを大幅に簡略化するという点で、開発者に計り知れない価値を提供します。要するに、Pythonの可能性は無限で、唯一必要なのは正しいアイディアだけかもしれません。

他にも提案やアイディアがあれば、ぜひ聞かせてください。

著者Claire D. Costaについて

Claire Dは、Digitalogyのコンテンツ制作者でマーケティング担当者です。Digitalogyは、世界中の特定のニーズに基づき、厳選された一流の開発者やデザイナーと人々を結びつける、技術ソーシングとカスタムマッチングのマーケットプレイスです。Digitalogyは、LinkedinTwitterInstagramでつながっています。

翻訳協力

この記事は以下の方々のご協力により公開する事ができました。改めて感謝致します。

Original Author: Claire D. Costa
(@ClaireDCosta2,
https://www.digitalogy.co)

Original Article: 10 Cool Python Project Ideas for Python
Developers

Thank you for letting us share your knowledge!

選定担当: @gracen
翻訳担当: @gracen
監査担当: -
公開担当: @gracen

こちらもどうぞ
朝飯前に学べる!便利なPythonのヒント100選【前編】 【後編】
最近見つけたクールなPythonライブラリ6選

ご意見・ご感想をお待ちしております

今回の記事はいかがでしたか?
・こういう記事が読みたい
・こういうところが良かった
・こうした方が良いのではないか
などなど、率直なご意見を募集しております。
頂いたお声は、今後の記事の質向上に役立たせて頂きますので、お気軽に
コメント欄にてご投稿ください。Twitterでもご意見を受け付けております。
皆様のメッセージをお待ちしております。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
246