Pythonで何ができる?プログラミングでPythonを学習して未来をつかめ

Pythonで何ができる?Pythonを学習して未来をつかめ

Bicepper

こんにちは!Bicepperです。

最近急激に伸びてきている人気のプログラミング言語と言えばPythonですよね。

え、Pythonって何ができるかって?

そうですねー…
一言で言えば「なんでもできる」ですね。

Pythonでできること

Webサービス、Webアプリケーションが作れるPython

Webサービス、Webアプリケーションの開発と聞いて皆さんが思い浮かべる言語はPHPではないでしょうか?

日本ではPHPが人気ですし、多くのサービスもPHPやPHP製のフレームワークが使われていますよね。

しかし、Pythonも負けていません。

PHPのフレームワークにCakePHPやLaravel、Symfonyなどがあるように、PythonにはDjangoFlaskbottleなどが用意されています。

Pythonのフレームワーク一覧

実は、世界の名だたる企業がPythonのフレームワークを使ってWebサービスを開発しているのを知っていましたか?

その中にはYoutubeInstagramspotifyなど、誰しもが一度は聞いたことがあるサービスがあります。

他にもPythonで作られた色々なサービスがあるので、気になる方はチェックしてみてください。

参考 8 Popular companies use Django for their web applicationsmedium.com

他にも、たとえば世界中で利用されているWordpressがPHPのCMSであれば、PythonのCMSはMezzanineDjangoWagtailです。

WebサービスやWebアプリケーションがPHPの独壇場だったのは、もう昔の話なんですね。

Webサイトをスクレイピング・クローリングできるPython

Webの勉強やプログラミングの勉強を始めたばかりの人にとって、スクレイピングクローリングという言葉は聞きなれないかもしれません。

厳密に言えばこの2つは異なりますが、まとめて言うならば「他のWebサイトのHTML構造を自動で分解、取得して、好きなようにカスタマイズしよう」という意味です。

クローリング、スクレイピング

プログラミング初心者

え!?分解って…なんか怖い

そんなに怖がる必要はありません!

PythonにしろPHPにしろ、最終的に我々ユーザーが目にするものは、HTMLです。

このHTMLのソースコードを分解して、自分の欲しい情報を取得して、活用しちゃおう!というのがクローリング・スクレイピングです。

プログラミング初心者

そんなものどこで使うの…?

たとえばあなたが、ライバル会社のWebサイトを毎日チェックして報告するよう上司に命令されたとしましょう。

毎日毎日自分でWebサイトを見にいくのはとてつもなく面倒ですし、もしかしたら見られない日があるかもしれません。

そんな時にPythonでプログラムを組み、決まった時間に決まったデータを取得してくるようにスクレイピング、クローリングすればいいのです。

あとはCSVやエクセル、テキストファイルなど自分の好きな形に保存しておけばいいのです。

機械学習・ディープラーニング・強化学習が出来るPython

Pythonと聞いたら、機械学習・ディープラーニングを思い浮かべる人も少なくないのではないでしょうか。

実はPythonは情報収集や分析だけでなく、機械学習や予測も得意とする分野です。

機械学習

膨大なデータを機械に取り込み、分析した結果から次の行動を予測をしたり、最も適切な行動を選択したり、画像を判定したりするのが機械学習ディープラーニング強化学習です。

Pythonが機械学習系に強いと言われる理由は、そのライブラリの豊富さです。

  • scikit-learn(サイキット・ラーン):機械学習系のアルゴリズム、モデル、データセットが数多く用意されており、実装も簡単にできる。
  • Numpy(ナムパイ):Pythonで効率的に数値計算をできるようになるライブラリ。数学のあらゆる関数などが用意されている。
  • matplotlib(マトプロットリブ):Pythonでグラフ描画ができるようになるライブラリ。簡単な2次元のグラフから3次元の高度なグラフまで様々な描画ができる。

この機械学習系の領域では膨大なデータを必要とすることが多々ありますが、そんな時は先程紹介した「Pythonでのクローリング・スクレイピング」が非常に活躍します。

とても人間の手では負えないような作業も、Pythonならサクッと出来てしまいます。

そもそもPythonってどんな言語?

Pythonで色々できることが分かったところで、ちょっとだけPythonについて紹介しましょう。

Pythonとは、非常に汎用性の高いプログラミング言語です。

Pythonのシンボルは、青と黄色の特徴的なヘビです。

Pythonロゴ

Pythonの特徴を表現する場合によく用いられるのが

  • 構文が非常にシンプル
  • ルールが決められている

の2つです。

構文が非常にシンプル

Pythonでは極力無駄なことは省くように設計されています。

そのため、他のプログラミング言語、例えばjavascriptやPHPなどからプログラミング学習に入った人がPythonを初めて見ると驚くでしょう。

たとえばJavascriptやPHPなどで関数を定義しようとするならば

function test(a){
  if (a >= 10){
    console.log("aは10以上");
  }else{
    console.log("aは10以下")
  }
}

と書きますが、これをPythonで書こうとするならば

def test(a):
  if a >= 10:
    print("aは10以上")
  else:
    print("aは10以下")

と書くことができます。

カッコ、いりません。セミコロン、いりません。

Pythonはインデントでパーツを認識してくれます。
最初は戸惑いますが、慣れると非常にシンプルで高速にコードを書くことができます。

ルールが決められている

非常にシンプルな構文ですが、Pythonにはある一定のルールが定められています。

これは、エンジニアでよくありがちな「オレオレ流コード」などに依存した場合に、コードの管理や共有が煩雑になってしまうのを防ぐためです。

みんなが独自のルールでコードを書いてしまうと、他に人にとっては書きづらいこともありますよね…

オレオレ流コード

Pythonでは、PEP8と呼ばれるルールがあらかじめ定められています。

例えば、

  • インデントは半角スペース4つで統一
  • コード1行の長さは半角で79文字以内に制限
  • クラスや関数同士の空行は2行とする

などなどです。

ある程度の制約を設けることで、コードに統一性を持たせるのもPythonの特徴ですね。

Pythonの人気は爆発的

Pythonの人気ぶりは、世界を見てもすさまじい勢いです。

こちらはGithubのプルリク数から算出された、プログラミング言語のランキングです。

プログラミング言語ランキング

JavaScriptに次いで2位ですが、他の言語が軒並み下降気味なのに対し、Pythonだけは徐々にその勢いを伸ばしています。

また、エンジニア向けサービスで有名なQiitaでは、JavaScriptを抜いて1位となっています。

Qiitaでのプログラミング言語ランキング

Pythonは恐ろしいほどの勢いを持っていますね…

ちなみに日本ではPHPやRubyなどが有名ですが、その勢いについては徐々に下降気味です。。。

PHPとは?PHPはオワコンなの?PHPエンジニアの未来

Pythonの学習は今からでも十分間に合う

Pythonの需要はこれからもまだまだ十分に伸びることは明白ですね。

また、Pythonの活躍できる領域も非常に広いことがわかったと思います。
Webサービスや機械学習、スクレイピングなどなど、Pythonさえ覚えてしまえばあらゆる分野やジャンルで応用が効かせられます。

他のプログラミング言語を覚えている人は、新しい言語を習得する意味でもPythonを選択するのは最善だと考えられます。

もし、これからプログラミングを学ぼうとしているのであれば、最初にPythonを選択することをオススメします。

僕は最初にPythonをこの本で学習しました。

表題に書かれている通り、「まったくのゼロから」でも習得できる完全初心者向けの実用書です。

もし他のプログラミング言語を習得済みなのであれば、Udemyで販売されている酒井さんの「Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座」をピンポイントでオススメします。

酒井さんのPythonコースはかなり人気で、入門者にとっては最適なコースです。もちろん僕も購入済みで、まだPythonに慣れていなかった時期は随分とお世話になりました。

Udemyを見てみる

【まとめ】Pythonを学習して未来をつかめ

Pythonで何ができるのか、そしてPythonのこれからについて紹介しました。

2020年現在でもPythonの需要は伸び続けています。

実際僕にもPython関連、特に機械学習やデータサイエンティスト系の仕事のオファーはほぼ毎日と言っていいほど来ます。
あまりにも多すぎて無視してしまいますが…

Python熱はしばらく続くと思いますので、これからPythonを習得しようとしている人は絶対に習得しましょう。

Bicepper

Pythonは本当になんでもできるんです。

Pythonを習得すればその楽しさは一層わかりますから、がんばりましょう!