爬虫類嫌いのPython日記

爬虫類が大の苦手の筆者が、Pythonに挑戦。他にも、RubyやObjective-C、Google Appengine、Herokuなど色々とチャレンジしています。

Pythonのビルトインオブジェクト(1)

Pythonのビルトインオブジェクト

Pythonのビルトインオブジェクトには、主に以下のようなものがあります。

  • 数値
  • 文字列
  • リスト
  • ディクショナリ
  • タプル
  • ファイル
  • その他

数値

数値型は、普通にプログラム言語を経験した事がある人なら、特に迷うような部分はないですね。

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には嬉しい所です。