Ryn's Web Page
現在、主にリスト型、辞書型、タプル型の部分を弄っております。
データ型
- プログラムで使用するデータは、整数であったり、小数であったり、文字列であったり、色々で、
必要となるメモリの大きさも扱いも違う。その為、各々に適したデータの型が用意されている。
- 「型は何になっているの?」という場合は、type() や is〇〇() という組み込み関数で知る事が出来る。
主な、代表的なデータ型についての概要
※この項では、主に、対話モードでの実行例を掲載している。
対話モードで行った処理は、モードを終了するまで記憶しており、
また、変数名だけを入力すると、その変数が記憶している値を表示する。
- str型 : 文字型。文字、文字列を扱う。” ” か ’ ’ で囲む。
実は、文字列は、文字単位の配列である。
詳細は、配列の項(予定)を参照。
対話モードによる実行例
1番目、'Hello, World' がクォーテーションで括っていない場合は、値の無い変数名として扱われ、エラーとなる。
3番目のものは、クォーテーションで括っていないので、減算に扱われている。
- int型 : 整数型。整数値を扱う。
- float型 : 浮動小数点型。小数点を含む数値を扱う。
対話モードによる実行例
type()関数で、値のデータ型を調べてみる。
スペースは、見易くしているだけ。
自動的に、'3'は文字型(str)。3は整数型(int)。3.0と3.14は浮動小数点型(float)として、扱われる。
変数にこれらの値が代入された場合は、変数に対して明示されたデータ型に関わらず、
値が持つデータ型の変数となる。
詳細は、変数の項を参照のこと。
除算結果のデータ型
対話モードによる実行例
1行に複数の命令を書きたい場合は、セミコロンで区切る。
除算の結果は、float型。
変数にこれらの値が代入された場合は、変数に対して明示されたデータ型に関わらず、
float型の変数となる。
3番目、結果をint()で囲めばint型に変換されるが、Pythonで、その必要が有るのか、と言われれば、微妙?
- bool型 : 論理型。True と False の2つの値のどちらかを持つ。
処理の経過判定などのフラグとして使ったりする。
- list型 : リスト型。一般的に言う配列だが、配列と言うよりは、リスト。
関連性の有るデータを[ ]で囲んでひとまとめにして処理出来る。要素の値は変更が可能。
各要素は、先頭を0として昇順に付けられる添字(インデックス)によって処理される。
要素の値が代入されていることが前提なので、要素に値が無い配列は作れない。
しかし、要素が無い(要素の数が0)の配列を宣言し、後から要素を追加する事は出来る。
CやJavaと違い、要素の値のデータ型を統一する必要が無いので、
CやJavaの構造体の様な使い方も出来るが、
添字によって統一しておかないと、処理の過程でエラーとなる場合が起きる。
詳細は、配列の項(予定)を参照。
対話モードによる実行例
変数a1、a2は、同じデータ型の要素でまとめ添字で制御する、従来の配列っぽい一次元リスト。
変数bは、構造体っぽい一次元リスト。
変数cは、構造体っぽい二次元リスト。
変数dは、二次元配列というより「リストの要素の値がリスト」なので、
こんなことも出来てしまう、という例。
- dict型 : 辞書型。
{キー:値}の様に、キーとその値を対にしてコロンで区切り、それをコンマで繋いで行くことで、
データベースの様な使い方が出来る。
要素の値が代入されていることが前提なので、要素に値が無い辞書は作れない。
しかし、要素が無い(要素の数が0)の辞書を宣言し、後から要素を追加する事は出来る。
詳細は、辞書型の項(予定)を参照。
例(1)。
対話モードでの実行例。
例(2)。2次元的な辞書型。
キーの順序は自由で良く、また、各要素で全て揃っていなくとも良い。
但し、キーが見つからなければエラーとなるので、対応が必要。
対話モードでの実行例だが、テキストファイルにソースコードを書いた方が試行錯誤し易いかも。
例(3)。変則的な辞書型。
某ビジネス文書実務検定の成績表。
キーの順序は自由で良く、また、各要素で全て揃っていなくとも良い。
但し、キーが見つからなければエラーとなるので、対応が必要。
対話モードでの実行例だが、テキストファイルにソースコードを書いた方が試行錯誤し易いかも。
- tuple型 : タプル型。要素の値は変更が出来ない。
値を変更されたくない様な場合に使う。
以下は、地図に、緯度、経度、名称で指定したランドマークの目印を付けて、htmlファイルとして保存する例。
folium は外部モジュールなので、別途インストールが必要。
一次元の例。
# Wushantou_map.py ver.1 by Ryn
import folium
a = ('烏山頭水庫', 23.207888, 120.36338 )
name = a[0] ; latitude = a[1] ; longtude = a[2]
map = folium.Map(location=[latitude, longtude], zoom_start=17)
folium.Marker(location=[latitude, longtude], popup=name).add_to(map)
map.save('Wushantou_map.html')
二次元の例。ピンの色も変えてみた。後はアイディア次第。
14行目が長過ぎるので、バックスラッシュで改行させている。
# Wushantou_map.py ver.2 by Ryn
import folium
a = ( (' ', 23.208800000000000, 120.36500000000000 ),
('烏山頭水庫', 23.202438928634987, 120.36837591232448, 'blue' ),
('八田與一紀念館', 23.205456797376105, 120.36644258808548, 'orange'),
('八田與一紀念園区', 23.214085339653728, 120.36484067974472, 'green' ),
('八田與一銅像', 23.209481732800434, 120.36895790961186, 'red' ) )
map = folium.Map(location=[a[0][1],a[0][2]],zoom_start=15.5)
for i in range(1,len(a)):
folium.Marker(location=[a[i][1],a[i][2]],popup=a[i][0], \
icon=folium.Icon(color=a[i][3])).add_to(map)
map.save('Wushantou_map.html')
実行して出来た地図の例:
こちら