Pythonは汎用的に使用されるプログラミング言語の一種です。Webアプリケーションから組み込み開発さらには近年のトレンドであるAI・人工知能・機械学習・ビッグデータなどの分野にて重宝されております。皆さんはPythonのメリット・デメリット、特徴や用途についてご存知でしょうか。この記事ではPythonを理解するために初心者でも分かるメリット・デメリット、基礎知識などを簡単に解説していきます。
Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。Pythonはプログラミング言語の中でも高い人気を集めており、GitHubの2019年調べによるとJavaを抜き2番目に人気のある言語となっております。
特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。このように幅広い分野にて扱われる汎用的なプログラミング言語として高い人気を集めております。
Pythonの読み方は『パイソン』が一般的となっております。名前の由来はイギリスのコメディ系テレビ番組である『空飛ぶモンティ・パイソン』から来ているようです。またPythonは英語で『ニシキヘビ』を意味することからマスコットキャラクターやアイコンにニシキヘビを採用することもあるようです。
Pythonはサーバー内部で動くもので、フロントエンドのプログラムからの指示を受けることで複雑またはデータベース依存の処理を行う仕組みを作るサーバーサイド言語です。サーバーサイド言語は一言で表すと『フロントエンドに必要な情報を送るためのプログラミング言語』といえます。このサーバーサイドはバックエンドと呼ばれることもあります。サーバサイドが存在することでユーザーが目に見えるフロントエンドに適切な情報が反映されてサービスが利用できるようになっております。
Pythonと相性の良い開発環境を見ていきましょう。
LAMP環境とは人気のオープンソース系ソフトであるLinux(OS)、Apache(Webサーバ)、MySQL(データベース)、Perl(プログラミング言語)それぞれの頭文字をとって組み合わせた開発環境で使用される機会が多いです。動的なコンテンツを含むWebサイトの構築に適しており人気のある開発環境の一つとなっております。LAMP環境は全てオープンソースのソフトを活用するため開発のコストを抑えられるという点や汎用性が高いという特徴があります。LAMP環境における”P”は『PHP』や『Perl』で対応する場合もあります。
LAMP環境の意味や特徴を解説している記事はこちら>>
XAMPP(ザンプ)環境とはウェブアプリケーションの実行に必要なオープンソース系ソフトをパッケージとしてまとめたものです。その名の由来はWindows、Linux、SolarisなどのクロスプラットフォームをXと表し、Apache(Webサーバ)、MariaDB(データベース)、PHP(プログラミング言語)、Pythonl(プログラミング言語)それぞれの頭文字をとって組み合わせ誕生しました。
WISP(ウィサプ)環境とはマイクロソフト社が提唱したLAMP環境に対抗するウェブサイト構築のための開発環境のことです。その名の由来はWindows(OS)、IIS(Webサーバ)、SQLServer(データベース)、PHP(プログラミング言語)、Pythonl(プログラミング言語)それぞれの頭文字をとって組み合わせ誕生しました。
Pythonのメリットを見ていきましょう。
Pythonはコードがシンプルで覚えやすいというメリットがあります。コードが短くて、読みやすいと評判のプログラミング言語であり初心者でも理解をしやすいほどです。目的の機能に対して宣言する記述が直接的な表現のものが数多く許されているため、プログラミングの生産性が高く多くの方に親しまれております。これらを実現する大きな理由としてPythonの哲学に『複雑であるよりもシンプルな方がよい』『何かをする方法は誰もが分かるものが1つだけ』などがあります。Pythonが如何にシンプルでわかりやすいものを目指しているかがわかりますね。
Pythonは少ない記述で多くの処理が可能というメリットがあります。開発するシステムに目的の機能を持たせるには様々な記述を行う必要があります。この記述行為をコーディングと呼びますが記述が少なければ少ないほどコーディング工数は少なく済みます。例えば目的の機能を実現するために例によっては10行近く記述が必要なプログラミング言語もあればPythonだと2,3行で実現できるなんてこともあります。
Pythonは汎用性が高く様々な場面で活用されるというメリットがあります。Webアプリケーションやデスクトップアプリケーションの開発を筆頭に組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来ます。また近年大きな注目を集めている人工知能(AI)やビッグデータなどトレンドの分野でも使用されております。このようにPythonを習得すると様々な業界で活躍できるプログラマーとして重宝されます。
Pythonは他のプログラミング言語と比較して実行速度が遅いというデメリットが挙げられます。その理由として『インタプリタ言語』『GIL(グローバルインタプリタロック)』『動的型付き言語』などであることが挙げられます。中でもインタプリタ言語はコードを実行する際に1行ずつコンピュータが読み取りやすいように機械語に翻訳していく言語です。一方Javaなどで採用されているコンパイラ言語では全てのコードを一括で機械語に翻訳する言語のため工数が少なく実行速度が早いです。このようにコンパイラ言語に比べて実行速度が遅いというデメリットがあります。
Pythonは世界的に2番目に人気を集める言語ですが、日本国内においてはPythonのニーズが高まったのは近年のことで他の言語に比べて日本語のドキュメントが少ないというデメリットが挙げられます。しかし急速に需要が増していると同時にPythonエンジニアとして活躍したいというプログラマーも増えていることからこの問題も解決の時が近いことが予想されます。
Pythonの基本的な文法を見ていきましょう。
変数では一般的に宣言、代入、参照を覚えておく必要があります。
Pythonではデータ型で使用される基本的な種類は以下の通りです。
データ型の種類 | 内容 |
int型(整数) | 整数(小数点を含まない数)の数値 |
float型(小数点) | 小数点の数値 |
str型(文字列) | 文字列(記号、数値を含む) |
bool型(真偽値) | 真偽値(”真:True” or “偽:false”)を判断 |
list型(リスト) | 任意の型(整数、浮動小数点数、文字列など)のデータを格納 |
tuple型(タプル) | 任意の型(整数、浮動小数点数、文字列など)のデータを格納 ※list型と異なり、変更不可能 |
dict型(辞書) | キーと値の組で表されるデータを格納 |
演算子では算術演算子、代数演算子、代入演算子、文字列演算子、ビット演算子、プール演算子、シフト演算子、比較演算子、条件演算子を覚えておく必要があります。
演算子の種類 | 概要 |
算術演算子 | 足し算や引き算を実行する |
代数演算子 | 四則演算に代表される計算に使用される演算 |
代入演算子 | 「=」のことで左辺を右辺に代入を実行する |
文字列演算子 | 文字列の結合を実行する |
ビット演算子 | ビットごとの論理和、論理積、否定を返す |
プール演算子 | 真偽値のブール演算を行う |
シフト演算子 | ビットシフトを行う演算子 |
比較演算子 | 左右の値の比較を行う演算子のこと |
条件演算子 | 条件が成立する場合は(真)の値を、そうでない場合は(偽)の値を返す |
制御文ではwhile文、for文、if、elseを覚えておく必要があります。
Pythonの代表的なフレームワークを見ていきましょう。
Django(ジャンゴ)とはPythonに活用されジャンゴソフトウェア財団によって管理されているWebアプリケーションフレームワークです。2005年にニュース系サイトに利用されることを目的に誕生しました。特徴として『速い』『安全』『柔軟性・拡張性』を掲げております。このようにDjangoを使用すると、より少ないコードで、より迅速に、より優れたWebアプリケーションを構築することができます。数あるPython向けのフレームワークの中でも知名度、普及率ともにトップの人気を集めております。
Djangoの公式サイトはこちら>>
Djangoの歴史、特徴、基礎知識の解説された記事はこちら>>
Flask(フラスク)とはPythonに活用されるアーミン・ロナッチャー氏によって開発されたWebアプリケーションフレームワークです。2010年4月1日のエイプリールフールに誕生し、アーミン・ロナッチャー氏は「エイプリールフールのジョークで作ったのだが、いつの間にか有名にそして本格的になってしまった」と語っております。特徴として提供される機能を最小限に抑えていることから『マイクロフレームワーク』と呼ばれております。シンプルな作りであることから学習コストが低く、導入障壁が低いこともメリットとして挙げられます。特に小規模でシンプルなWebアプリケーションの開発を実行する際に人気を集めております。
Flaskの公式サイトはこちら>>
Flaskの歴史、特徴、基礎知識の解説された記事はこちら>>
Bottle(ボトル)とはPythonに活用されるマルセル・ヘルカンプ氏によって開発されたWebアプリケーションフレームワークです。2009年7月に高速、シンプル、軽量になるように設計されたマイクロフレームワークとして誕生しました。マイクロフレームワークであるFlaskと同様に小規模でシンプルなWebアプリケーションの開発を実行する際に人気を集めております。
Bottleの公式サイトはこちら>>
Bottleの歴史、特徴、基礎知識の解説された記事はこちら>>