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とかをやっていると、ちょっと気持ち悪く感じるのが、整数値を代入した変数に文字列を代入することができる。よく言えば柔軟性が高い。

 num =1                      # 数値代入
 print(num)
 num = "あいうえお"    # 文字列代入<=エラーにはならない


型に甘いが自動的な型変換はしてくれない

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と同等






 

このブログの人気の投稿

11月2日(火)4コマ目

11月9日(火)4コマ目