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       # ややこしいけど注意。左のcolorcatattribute変数

# 右辺の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 になる