Pythonとは

Pythonとは

近年人気が非常に高まっているPython(パイソン)ですが、一体どういった言語なのでしょうか?

Pythonはコードがシンプルになるように設計されており、他のプログラミング言語と比較すると少ない行数で実装することが可能です。Guido van Rossum氏により作られたPythonは1991年にバージョン0.9.0として公開され、その後、1994年にバージョン1、2000年にバージョン2、2008年にバージョン3と進化を遂げました。

オブジェクト指向をサポートしておりモダンな言語の印象を受けますが、実は1995年に登場したJavaやRubyより歴史があるのです。

Pythonでできること

Pythonでできること、と表題を打ちましたができないことのほうが少ないのかもしれません。

  • 科学技術計算
  • バッチ処理
  • Webアプリケーション
  • GUIアプリケーション
  • グラフィック

といったコンピューターに任せたい代表的な処理はあらかたPythonで組むことが可能です。簡単に説明しましょう。

科学技術計算

Pythonの大きな特徴として、統計計算を始めとした科学技術演算のライブラリが充実している点が挙げられます。このため、近年注目を集めている機械学習には外せない言語となっています。

バッチ処理

複雑な計算もPythonだとシンプルに記述することができます。また、RDBやExcel、CSVの連携ライブラリが数多く提供されています。このため、業務や分析向けのETLをすばやく実装することが可能です。

Webアプリケーション

演算やデータ変形以外に、Webアプリケーションを実装することも可能です。Webシステムを実装するためのフレームワークもあり、有名所としては以下のものが挙げられます。

  • Django
  • flask

GUIアプリケーション

TkinterというPythonからGUIを制御するためのツールキットが提供されています。これを使用するとPythonでデスクトップアプリケーションを実装することが可能です。

Pythonの特徴

Pythonのプログラミングコード上での最大の特徴の一つはプログラムのインデントでしょう。通常のプログラム言語はインデントは見やすく書くための任意手段ですが、Pythonはインデントが制御に使われます。このおかげでコードの可読性は比較的良好といえますが、他の言語から移った場合は奇異に感じる点でもあります。インデントが厳格なため、括弧が少なく処理をシンプルに記述することが可能です。

また、プラットホームを選ばない、という点も見逃せません。(一部例外はあるものの)Windowsで記述したコードはMacでもLinuxでも動作しますし、逆もまた然りです。

Pythonのデメリット

Python固有のデメリットはあまり思い浮かばないのですが、しいて挙げるならば実行速度は速くない、という点でしょうか。ただし、これはスクリプト言語全般に当てはまることでしょう。ただし、これは後述するPyPyを使用してある程度までカバーすることができます。

また、これもPython固有の問題ではありませんが、GUI分野においてはWindowsにおける.net等、ネイティブの言語や実行環境と比較すると見劣りがしてしまいます。

あと、メリットとして誤解があると思われるのが、「Pythonは可読性が高い」、「Pythonは誰が書いても似たコードになる」という主張についてです。これは場合によっては誤っていると言えそうです。

Pythonはモジュール+関数とオブジェクトをサポートしているため、設計の選択にかなりの幅があります。C言語ライクな実装からオブジェクト指向ライクな実装、それらのハイブリッドと好みで実装できてしまいますので、自由に実装できる半面、実装者の方針が異なると全く異なったコードが出来上がってしまいます。

予め知っておくと学習が捗るであろう単語

次回以降、実際に手を動かして学習していただくことになりますが、予め知っておくと学習が捗るであろう単語について補足します。

Pythonの種類について

一言にPythonといっても、実はPython本体にはいろいろ種類があります。例えばJavaコンパイラはOracle、GNU、IBMがそれぞれ別に開発していますが、それと同じような感じです。

CPython

Python Software FoundationによってC言語で実装されたもので、通常PythonといえばこのCPythonを指します。

PyPy

PyPy(パイパイと発音)はJITコンパイル機能を持っており、実行時に適宜コンパイルしてから実行しますので、CPythonより高速に実行することが可能となっています。また、CPythonとの互換性も高いため、速度が問題になったときに使用を検討してみてください。

anaconda

anacondaとは、科学技術計算向けPythonパッケージが予めまとめられたPythonの環境の一つです。人気の高いデータサイエンスパッケージがインストール不要ですぐ使えるため、データサイエンス分野でPythonを学習したい方は利用を検討してみてください。

PyPIとpip

PyPI(Python Package Index)は、Pythonの、サードパーティーのリポジトリです。pip(ピップ)というコマンド一発でPyPIからインストールすることができます。
pipの使用方法

venv

venvとはPythonに標準の仮想環境のことです。これを活用することで、プロジェクトやプロダクト毎に外部ライブラリを管理することがでkます。参考:venvによる仮想環境作成

それでは次回からPythonをインストールして学習を進めていきましょう。