11月1日(月)2コマ目
準備
jupyter上でpythonを実行できるDockerコンテナを利用して実習を行います。
⓪Dockerのプロキシ設定確認
Dockerのsettingで下図のようにプロキシを設定。
| 図 Dockerプロキシ設定 |
①Dokcerイメージ取得
jupyterのDockerイメージは含まれるライブラリによって数種類あります。
今回は科学計算系のライブラリがない「base-notebook」を使います。
以下をコマンドプロンプトで実行してください。
>docker pull jupyter/base-notebook
| 図 docker pull実行(完了) |
②イメージからコンテナ作成、起動
デフォルトの8888番ポートで待ち受けるようにコンテナ(コンテナ名:jupyter_base)を作成し、起動します。
>docker run -p 8888:8888 --name jupyter_base jupyter/base-notebook
| 図 docker run実行 |
表示メッセージ中にjupyter利用時に必要なトークンが出力されます。
| 図 トークン |
2回目以降
コンテナはすでにできているため、コンテナを起動するだけです。
以下のコマンドを実行してください。
>docker start jupyter_base
なお、jupyter利用時にトークン入力が必要な場合は、以下を実行してトークンを確認すること。
①コンテナのシェル起動
>docker exec -it jupyter_base /bin/bash
②トークン確認
#jupyter notebook list
Jupyternoteを使う
Webブラウザを起動して以下のURLにアクセスしてください。
http://localhost:8888
今日、やったこと
- Python環境構築
- 変数
- 演算子
- for
今日のホワイトボード
Dockerについて
Docker上にPython用環境を作った。
Dockerでのライフサイクルについて。
| 図 Dockerライフサイクル |
①docker pullでイメージをダウンロード
イメージ=インストール用CD
②イメージからコンテナ作成
コンテナ=PC
ダウンロードしたイメージをPCにインストールすると思っていただければ。
③コンテナ起動
②のPCの電源を入れると思っていただければ。
インデントでブロックを作る
CやJavaは{ } でブロックを作ったが、Pythonは同じインデント=同じブロック。
慣れないうちは注意!!
| 図 インデントでブロック定義 |
型をあまり意識しなくていい
CやJavaは変数宣言時に型を指定するが、Pythonは代入されたときに型が決まる。
| 図 変数宣言不要 |
Cとかをやっていると、ちょっと気持ち悪く感じるのが、整数値を代入した変数に文字列を代入することができる。よく言えば柔軟性が高い。
型に甘いが自動的な型変換はしてくれない
C#やJavaは
数値型 + 文字列
のように+演算子の左値、右値のいずれかまたは両方が文字列なら+は文字列結合のための演算子。
このとき、数値型は自動的に文字列に変換して、文字列結合を行う。
Pythonでも+演算子は数値の足し算、文字列の結合の2種類ある。
1 + "あいうえお”
と書くと、エラー。1をstr()で文字列に変換する必要あり。
str(1) + "あいうえお"
| 図 数値=>文字列への自動的な変換はしない |
演算子のポイント
基本的にCやJava等と同じ。
下図が異なるので注意。
| 図 C、Java等と異なる演算子 |
for
Cのforより、Javaの拡張forやC#のforeachと同じで、コレクション(配列とかListとか)から順に要素を取り出す。
逆にCのforと同じようなことがしたいなら、range()関数を使うこと。
| 図 forはforeachと同等 |