お役立ち

Pythonのできること&デメリットをまとめてみた

  • このエントリーをはてなブックマークに追加

はじめに

Pythonは人気言語ランキングで、Javaを抜き去り
1位に躍り出て現在もっとも勢いのある言語です。
スクリプト言語の王といっても過言ではないくらい良い言語です。
とはいえ、「Pythonのどこが良いの?」という声を聞くことも多いので、
わたしがPythonに対する魅了を伝えられたら良いなと思い記事を書きました。
また、良い点だけではなく不満に思うところもまとめてみました。

Pythonできること

Webスクレイピング

Webスクレイピングとは、
Web上からさまざまな情報をプログラムで集めることです。
Webページに埋め込まれたデータから必要な数値を抜き出したり、
APIをたたいてデータを取得するのがPythonだと簡単にかけます。
Javascriptで書かれたページは解析が難しいですが、
Pythonでは、Seleniumを利用すると簡単に解析ができます。
ほかにもBeautifulSoupなどを利用することで
Webスクレイピングが効率的になります。
PythonはWebスクレイピング環境がもっとも整った言語といえます。
Webスクレイピングに関しては
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
が良くまとまっています。

統計解析

Pythonでは、統計解析が容易にできます。
統計解析というとRも有名ですが、
わたしはPythonのほうが使い勝手が良いと思ってます。
なぜかというと、Pythonのほうが汎用的な使い方ができて、
さまざまなライブラリと連携することができるからです。

ディープラーニング・機械学習

メジャーなディープラーニングのライブラリは、
ほとんどがPythonです。
また、機械学習関係の本はどれもPythonで書かれていて、
機械学習を行うためにはPythonが必須の状況です。

画像処理

Pythonでは、画像処理でもっとも著名なライブラリOpenCVが利用できます。
Pythonは、C++を直接呼び出せる特徴がこれを可能にしています。
スクリプト言語ですが、C++で書かれたOpenCVを呼び出せるため
重たい画像処理も効率的に処理できます。
また、本ブログでもPythonによる画像処理はよく取り上げる話題なので
よかったら見てみてみてください。
https://www.tech-tech.xyz/archives/opencv-python/

データの前処理

統計解析やディープラーニングなどのデータ解析には、
データの前処理が必要です。
これもPandasなどのライブラリを利用すると、
少ない行数で前処理が完了できるので効率的に行えます。
データ解析のライブラリが充実しているだけあって、
収集から前処理も完全にカバーできているのが
Pythonの魅力です。

データの可視化

データの可視化もPythonでは簡単に行うことができます。
Matplotlibを利用すると、グラフの凡例や枠線、
枠線の調整までやりたいことが一通りできます。
また、変数を省略でもグラフの体裁を自動で整えてくれるのでとても便利です。

Notebookが便利

PythonのライブラリでJupyterというものがあります。
このノートブック機能が便利で、
ブラウザ上でPythonをインタラクティブに操作できます。
これは、データ解析やコードのデバッグに便利です。

単純な作業の効率化

Pythonは、少ない行数でさまざまな処理がかけるので
ちょっとした作業を自動化したい場合Pythonは適した言語です。
エクセルなども扱えるので、
こっそりと会社の事務業務を効率化しても良いかもしれません。
ただし、自己責任で…

Webページの作成

最近だと、PythonがWebアプリ開発でも力をつけています。
Pythonでは、Djangoやflask,tornadoなどさまざまなライブラリがあります。
下記の記事によると、
Youtube、インスタグラム、DropBoxなどのWebサービスが
PythonのDjangoを使ってかかれているようです。
https://www.shuup.com/django/25-of-the-most-popular-python-and-django-websites/
また、Djangoの記事はよく書くので参考にしてみてください。
https://www.tech-tech.xyz/python-django-tutorial1/
https://www.tech-tech.xyz/python-django-tutorial2-html/
https://www.tech-tech.xyz/python-django-layout/

Python不得意・不満

スマホアプリ開発

スマホアプリの開発は、Pythonではできません。
できないというよりは、
スマホアプリ開発ができる言語が限られているといったほうが良いかもしれません。
もし、スマホアプリを開発したいのであれば、KotlinやSwiftがおススメです。
ただし、サーバーサイドでは、有力候補の言語です。

ゲーム開発

まったく開発できないわけではなく、
ちょっとしたゲームアプリであれば簡単に作成できます。
とはいえ、まだまだ環境が整ってないという印象です。
本格的なゲームを開発したいのであればC#とかが良い印象です。

Python2,3問題

Python2,3が使われている情報なので、
ネットの情報を見るときバージョンが混在していて面倒なことがあります。
Python3しか知らない場合、細かいところでつまずく可能性があります。

Unicodeの取り扱いが慣れるまで面倒

Pythonは、Unicodeの取り扱いが苦手なようで
日本語周りのエラーは良く起きます。
なれれば、トラブルシューティングも簡単ですが、
少し面倒なのでどうにか解決してほしいなという願望はあります。

暗号系ライブラリが微妙

暗号系ライブラリがいまいちです。
AESとかを使いたいとき暗号系ライブラリで苦戦する印象があります。
Windows上では、コンパイルが通らないなどいろいろと問題があります。
ここらへんは、標準でOpenSSLがつかえるRubyがうらやましいところです。

Pythonのメリット・デメリット

さいごに、本記事で紹介したことをまとめてみました。

メリット

  • データ解析をやるならPython一択
  • お手軽にコードをかける
  • Web業界でも影響力を強めている

デメリット

  • 若干クセがある
  • アプリの開発はPythonではできない→Swift or Java(Kotlin)
  • ゲーム開発はまだまだこれからか?→C#のほうが良い
  • このエントリーをはてなブックマークに追加