Pythonのビルトインオブジェクト(1)
数値
数値型は、普通にプログラム言語を経験した事がある人なら、特に迷うような部分はないですね。
- 整数型
- 浮動小数点型
Pythonでは計算の精度を上げる必要があると判断した場合、自動的に、長整数に型キャストが行われます。
その場合、演算結果の末尾に「L」が付きます。
>>>2**100 # 2の100乗を計算 1267650600228229401496703205376L
文字列
Pythonでは、文字列はシーケンスと呼ばれるオブジェクトの一種です。
そのシーケンスに対して、色々と操作する感じになります。
不変性を持つオブジェクトなので、操作結果は、新たなオブジェクトが作成される事になります。
元の文字列には変更は加えることはできません。
Rubyも同じような感じです。
この辺が、PHPと違う所ですね!!
>>>S = 'Hoge' >>>S Hoge >>>len(s) # 文字列の長さを返す 4 >>>S[0] # インデックスを指定すると、該当する要素を返す H >>>S[0] = 'h' # 不変性を持つオブジェクトなので上書きできない ・・・エラーメッセージが表示される・・・ >>>S = 'h' + S[1:] # 新たなオブジェクトを作成すればエラーにならない >>>S hoge
Pythonのオブジェクトは、全て不変性と可変性に分類できる。
不変性のオブジェクトは、プログラム実行中に変更される事はありません。
この辺の安全性は、PHPで苦しんできたPythonicには嬉しい所です。