Pythonはさまざまな分野のアプリケーションで使われているインタープリタ型のプログラミング言語です。クリーンで読みやすい文法、手続き型のコードによる自然な表現、直感的なオブジェクト指向、事実上すべてのタスクをこなせる広範な標準ライブラリとサードパーティのモジュール、アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能・・など様々な利点があります。
Google社においても C++、 java と並ぶ3大言語のひとつとして位置づけられていて、Googleが公開している人工知能のAPI TensorFlow も Python のライブラリのひとつとして位置付けられています。
開発環境を含めてオープンソースです。無償でダウンロード>インストールして利用することができます。
Youtube / Instagram / Pinterest / DropboxWikipedia:Pythonを使っている製品あるいはソフトウェアの一覧
このページでは Python プログラミングの導入について説明しています。
データサイエンスの学習等で初めて Python を使う方には、このページに記載の環境を準備するよりも、GoogleColaboratory の利用をお勧めします。> GoogleColaboratory
以下のようにローカルPC上での開発(一般的なアプリケーション)と、クラウドサービス(Google Colaboratory)を使った開発(データサイエンス向き)の2つのタイプがあります。
以下、順に解説します。
Pythonには、2系と3系があって、これらは互換性がありません。これから学習する方は3系の利用をおすすめします
Macの場合は Python2系(OS X 10.7 〜 macOS 11)あるいは Python3系(それ以降)のいずれかが、すでにインストール済みです。Terminalで以下のようにタイプしてみて下さい。
python --version
Python 3.XX.XX のかたちで表示された場合は、すでにインストール済みです。
Python 2.7.XX と表示された場合は、さらに以下のようにタイプして下さい。
python3 --version
以下の公式サイトから、自身の環境に合うものをインストールして下さい。
https://code.visualstudio.com/Download
Macの場合は、解凍したもの(アイコン)をアプリケーションフォルダへ移動して下さい。
VS Code(Visual Studio Code)は、様々なプログラミング言語に機能を対応した機能拡張が可能な TextEditor で、Python 拡張機能を追加することで、快適な開発環境となります。
公式サイトで配布されている標準的な開発環境(IDLE)です。Pythonのインストール時に同時に入ります。アプリケーションメニューに Pythonフォルダ が追加され、IDLEのダブルクリックで開発環境が起動します。配布元は以下。
Jupyter Notebook / Jupyter Lab は、IPython というカーネルと、Notebook または Lab という Web UI をセットにした開発環境で、ブラウザ上でデータ処理とコメントなどを順次ノート形式で記録できるようにしたものです。ブラウザを動作基盤とした Webアプリケーションなので、環境に依存しない開発が可能です。
IPython(アイパイソン)は Python を対話的に実行するためのシェルで、Python の機能の一部(対話処理)に、対話を強化する各種機能を追加したもの・・というイメージです。統計処理(データ読む>分析する>結果をグラフで表示する)など、作業を逐次的に進めていくプログラムの開発に向いています。
$ pip3 install jupyter(2系の場合はpip)
$ jupyter notebook
http://localhost:8888/tree (Xampp デフォルトのローカルポート)ブラウザ自体が開発環境となり、[QUIT] で終了するまで、Terminalの方は「音信不通」の状態になります。
注).html拡張子 に対するアプリケーションの割付が「ブラウザ」になっていることが必要です。.html のダブルクリックでエディタが開くような割付設定を行なっていると、Notebookがうまく起動できないので注意して下さい。
Anaconda はデータサイエンス向けの統合開発環境で、科学技術計算などを中心とした数多くのモジュールやツールが独自の形式でパッケージされています。ソースコードエディターはもちろん、Python 2系、3系を仮想環境を分けて利用できるなど、様々な活用が可能です(ディスク領域は1GB以上使います)。
$ conda install [ ライブラリ名 ]
$ conda update -n base conda
$ conda update --all
$ conda update pandas
/user/(ユーザ名)/anaconda3インストール時に「自分専用にインストール」を選んでください。
Pythonがインストールされていれば、Terminal で体験することができます。開発に必要なのは、プログラムを書くためのテキストエディタのみです。あとは Terminal からのコマンド入力で動きます。以下、手順の例です。
$ python sample.py $ python3 sample.py(Python3 の場合)
以下のページに、もう少し具体的な説明を記載しています。
Python/Sample?
以下、Google Colaboratory を利用する場合は、自身のPCに何かをインストールする必要はありません。Googleアカウントがあれば、ブラウザから誰でも無料で利用できます。
GoogleColaboratory とは、Googleの仮想マシン上で動くIPythonの実行環境で、Jupyter Notebook を利用します。
https://colab.research.google.com
記事を独立させました。> GoogleColaboratory
Terminal からのインストールには、pip3(2系は pip)を使います。以下のように、コマンド入力はいたって簡単です。
$ pip3 install pygame ← ゲーム開発用のライブラリ $ pip3 install pyopengl ← 3DCG用のグラフィックライブラリ $ pip3 install jupyter ← jupyter notebook $ pip3 install orange3 ← データマイニングツール Orange3
以下のコマンドで確認できます
$ pip3 list Package Version ------------------ ----------- ipykernel 5.3.0 ipython 7.16.1 jupyter 1.0.0 jupyter-client 6.1.5 jupyter-console 6.1.0 jupyter-core 4.6.3 matplotlib 3.2.2 notebook 6.0.3 numpy 1.19.0 pandas 1.0.5 pip 20.1.1 :
Python 禅(The Zen of Python)は、Pythonプログラマが持つべき心構えを簡潔にまとめたものです。"Zen"は日本語の「禅」。Pythonインタプリタ環境で import コマンドを以下のようにタイプするとその文章を読むことができます。
$ python3 Python 3.8.2・・・ >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!