Pythonの基本変数型
変数の型は、代入する値の型によって決まる
整数型 (integer)
n = 10
浮動小数点 (実数) 型 (floating point)
x = 10.0
x = 10.0e5
文字列型 (string) "" あるいは '' でくくる。どちらも意味は同じ。
s = "abc"
s = 'abc'
文字列内に
'
や " が含まれる場合、くくる引用符を変えることで表現できる。
s = "a'bc"
あるいは、'\' を使って特殊文字をエスケープする。
s = 'a\'bc'
改行文字 (LF) \r
行頭復帰文字 (CR) \n
タブ \t
直後の1文字 \\ \ 文字自身
\' '
\" "
s = 'a\'bc' 文字列内に \ があると、直後の1文字となる(上記特殊文字等以外)
リスト型 (list) 複数の要素を持つ配列
d = []
要素を追加する場合
d.append(3.0)
追加する値の型により、その要素の型は変わる => 一つのリストに、異なる型の要素を持たせられる
i 番目の要素を参照
d[i] 注意:Basic, Fortranなど以外のプログラム言語では、
要素番号 i は0から始まり、N-1 まで (Nは要素数)
"val"がリストdに含まれるかどうか
if "val" in d:
タプル型 (tupple) リスト型に似ているが、要素の書き換えができない => 定数リスト
d = ()
書き換えができないので、.append() は使えない
i 番目の要素を参照
d[i]
"val"がタプルdに含まれるかどうか
if "val" in d:
辞書型 (dict) 文字列で区別される複数の要素を持つ配列
d = {}
要素を追加する場合
d["key1"] = 3.0
追加する値の型により、その要素の型は変わる => 一つの辞書型変数に、異なる型の要素を持たせられる
"key2" 番目の要素を参照
d["key2"]
keyのリストを取得
d.keys()
"key1" がキーに含まれるかどうか
if "key1" in d.keys():
"key1" がキーあるいは値に含まれるかどうか
if "key1" in d:
オブジェクト
オブジェクト (Object): 複数の属性 (attribute, property) と 操作 (method) を結び付けた変数
pythonの場合は、属性と操作をいずれもattributeと呼ぶ
Pythonの変数はすべてオブジェクトである。
オブジェクト変数の属性へのアクセス:
インスタンス変数名.属性名
インスタンス変数名.操作名(引数)
オブジェクトの定義: クラス (class)
クラスを変数として実体化: インスタンス (instance)
オブジェクト指向プログラミング: クラス、オブジェクトを中心としたプログラム言語、プログラミング
ó 手続き型プログラミング: Cのように、関数、サブルーチン(手続き: procedure)で構造化したプログラミング
例:
catオブジェクト: propertyとして、color, weight, methodとして move(), position()などが考えられる。
# クラスの定義 (概念的なプログラムリストなので以下のままでは動かない):
class cat():
# pythonでは、 # 以降は行末までがコメント文として、無視される
# 関数は def文で定義し、: で終わる
# 変数は 変数名 = 初期値 とすることで、初期値を設定できる
def __init__(self, color = 'white', weight = 20.0):
color = color # ややこしいけど注意。左のcolorはcatのattribute変数
# 右辺のcolorは__init__関数の引数変数
weight = weight
x = 0.0 # 位置変数 x,y,zは 0.0 で初期化しておく
y = 0.0
z = 0.0
def move(dx, dy, dz): # 位置をdx,dy,dzだけ移動させる
…
def position():
return x, y, z # 位置を [x,y,z]リストで返すメソッド
インスタンスの生成(変数の作成)
nyanko = cat() # catクラスで定義されたオブジェクトのインスタンス変数nyankoをつくる。
# 引数を指定していないので、初期値が使われ、
# naynako.color は 'white'、nyanko.weightは 20kgになる。
nyanko = cat(color = 'black')
# catクラスで定義されたオブジェクトのインスタンス変数nyankoをつくる。
# 引数で指定されたcolor変数は初期値から変更され、naynako.color は 'black' になる
nyanko.move(3, -1, 0)を実行すると、nyanko.x, nyanko.y, nyanko.zはそれぞれ 3, -1, 0 になる
nyanko.move(-1, 3, 2)を実行すると、nyanko.x, nyanko.y, nyanko.zはそれぞれ 2, 2, 2 になる