tsjshg / pyalgdata

Pythonで学ぶアルゴリズムとデータ構造

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pythonの環境構築

PythonはPSF(Python Software Foundation)によって管理され、オープンソースで開発が進められている。Windows、macOS、Linux/UNIXなど多くのOSで動作する。Pythonにはバージョンがあり2系と3系があるが、2系は2019年末でPSFのサポートが終了するため、3系を利用するのが良い。本書のコードは、3.6以上のバージョンで動作する。

Pythonには数多くの外部パッケージがあり、標準のPythonにこれらを追加することで、便利なライブラリを利用することができる。本書は、標準のPythonだけで学習を進められるようにしてあるが、Pythonを使った実践的なプログラミングには外部パッケージは必須となる。

環境の構築には、大きく分けて2つの方法がある。

  1. PSFが配布する標準のPythonをインストールしたあとに、外部パッケージを個別に追加する
  2. 外部パッケージを同梱した配布形式(ディストリビューション)を利用する

標準のPythonは、PSFのサイトからダウンロードできる。使っているOSに応じて、3.6以上のインストーラを取得してセットアップしてほしい。環境変数PATHにインストール先を追加すれば、OSのシェルからpythonコマンドや外部パッケージ追加のためのpipコマンドが実行できるようになる。macOSなどUNIX系OSでは、python3pip3というコマンド名になっている。ここで、OSのシェルとはWindowsではWindows PowerShellまたはコマンドプロンプト、macOSではターミナルを意味する。

外部パッケージを同梱したディストリビューションとしては、米Anaconda社が配布するAnacondaが広く使われている。Anacondaをセットアップすれば、次に説明する追加の作業は必要ない。またAnaconda環境では、外部パッケージの管理にcondaコマンドを利用する。

必要な外部パッケージ

公開資料のコードを実行するには、Jupyter環境が必要となる。pip install jupyterとしてインストールする。すべてのコードを実行するには、さらに以下の2つのパッケージも必要となる。

  • networkx
  • matplotlib

Jupyterの使い方

OSのシェルからjupyter notebookと入力すると、Webブラウザが起動し、次のような画面が表示される。コマンドを起動したディレクトリがカレントディレクトリになる。AnacondaではGUIのアプリケーションからJupyterを起動することもできる。

Jupyter起動画面

Jupyterはサーバで実行されているPython環境を、クライアントのWebブラウザを通じて利用する仕組みになっている。1台のPCで利用する場合は、サーバとクライアントが同一のマシンということになる。右上にある「New▼」から「Python3」を選択すると、新しいノートブックができる。

新しいノートブック

Inから始まるセルにコードを入力する。セルの枠が緑色になっているときが編集モードで、コードを入力できる。青色になっている時は、コマンドモードなのでコードの入力はできない。セルの内部をクリックするか、Enterキーを押すことで編集モードに移行できる。

セルの中に入力したコードを実行するには、Ctrl+Enterとする。画面への出力がある場合は、Outに番号がついて、Inの下に実行結果が表示される。セルの最終行はコードとして評価されるので、printを使わなくても内容が画面に表示される。Shift+Enterを使うと、コードの実行と新しい入力セルの追加が同時にできるので便利だ。よく使われる機能はツールバーにまとまっている。慣れてきたら、コマンドモードで使えるショートカットキーを覚えると作業効率が上がる。ノートブックの名前は、「Untitled」となっている部分をクリックすれば変更できる。ノートブックは拡張子ipynbという名前で1つのファイルにまとまる。

ファイルのリスト

図のようにリストされたipynbファイルをクリックするとノートブックを開くことができる。

Jupyterの終了は、右上の「Quit」を使う。OSのシェルから起動した場合は、Ctrl+Cを使ってjupyter notebookコマンドを終わらせることもできる。

About

Pythonで学ぶアルゴリズムとデータ構造


Languages

Language:Jupyter Notebook 100.0%