みんなのPython Chapter02
変数
組み込み型
- 数値
[例] 10 3.1415 0xFF
- 文字列
[例] "abc",'string',u"日本語"
- リスト
[例] [1,2,3] ["python",u"あいう",4]
- タプル
[例] (1,2,3,4) ("abc",5,"def")
- 辞書
[例] {'spam':u'スパム','ham':u'ハム',1:'one'}
- 累乗を計算するときは「**」を使う
- 「++」「--」は使えない
- 「+=」「-=」は使える
文字列
- 文字をしまっておくための領域をあらかずめ確保する必要なし
- 文字列型
- 数値やアルファベットといったASCII文字を扱うために利用する
- ユニコード型
- 漢字やひらがななどの文字を含む、より広い範囲の文字を扱うために利用する
- 文字列を定義するために、ダブルクオーテーションの代わりにシングルクオーテーションを使うことも出来る
- 長い文字列を定義する時、ダブル(シングル)クオーテーションを3つ重ねて記述出来る
- 「+」はオブジェクト同士をつなげるという意味がある
- 「*」はオブジェクトを繰り返すという意味がある
- 型を揃えるには組み込み関数(ex. int(文字列),str(数値))を使う
- 文字列の検索と置換
- 文字列の検索は
文字列.find(検索文字列)
- 文字列の置き換えは
文字列.replace(検索文字列,置換文字列)
- replace()メソッドを呼び出しても、もとの変数は変わらない!戻り値を変数に代入しておくこと
>>> digits = digits.replace("23","2233") >>> digits '122334'
- インデックスを使って要素を取り出す
- インデックスを使って取り出したオブジェクトの型は、1文字だけで構成される文字列
>>> digits = "1234" >>> digits[2] '3'
- ord()関数とchr()関数
>>>ord(digits[2]) #変数の3文字目をキャラクタコードに変換 51 >>>chr(52) #キャラクタコードの52を文字列に変換 '4'
- 文字を置き換えようとするとエラーになる
- 文字列を置き換える場合は、文字列メソッドreplaceなどを使うか、文字列の演算を行い、その結果を変数に代入
>>> digits[2] = "4" Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> digits[2] = "4" NameError: name 'digits' is not definedユニコード文字列
>>> ustr = u"abcあいう" >>> len(ustr) 6 >>>bytestr = ustr.encode("utf-8") >>>len(bytestr) #UTF-8の8ビット文字列の長さを調べる 12
- 日本語を含む文字列を扱う場合は、ユニコードを使ったほうが良い!
リスト
- リストにはどんなオブジェクトも入れることが出来る
[例] 数値、文字列、リストそのもの
- 領域を確保したり、増やしたりする必要はない
- リストの定義
>>> a = [1, 2, 3, 4, 5] >>> a [1, 2, 3, 4, 5]
- インデックスの利用
>>> a[2] #リストの要素を取り出す 3 >>> a[-1] #リストの最後の要素を取り出す 5
- スライスによるリストの取り出し
- 「:」の後ろに指定する数値には、取り出したい要素のインデックスに1を加えた整数を指定する
>>> a[1:3] [2, 3] >>> a[3:4] [4] >>> a[2:] #2番目から最後まで [3, 4, 5] >>> a[:3] #最初から3番目まで [1, 2, 3, 4] >>>a[2:100] #エラーにならない [3, 4, 5]
- リストの足し算
>>> b = a + [100, 101, 102] >>> b [1, 2, 3, 4, 5, 100, 101, 102]
- リストのかけ算
>>> a = [1, 2, 3] * 3 >>> a [1, 2, 3, 1, 2, 3, 1, 2, 3]
- 要素の置換え、削除
- リストの要素を入れ替える
>>> a = [1, 2, 3, 4, 5] >>> a[1] = 'Two' >>> a [1, 'Two', 3, 4, 5]
- 要素の削除
>>> del a[2] >>> a [1, 2, 3, 4]
- max()関数とmin()関数
>>> oilsupply = [271220, 259429, 259795, 262472] >>> min(oilsupply) 259429 >>> max(oilsupply) 271220
- リストのソートと順序の反転
- 小さい順に並べ替える
>>> gdp = [51317, 50097, 494720, 50125] >>> gdp.sort() >>> gdp [49720, 50097, 50125, 51317]
- 並び順を逆にする
>>> gdp.reverse() >>> gdp [51317, 50125, 50097, 49720]
- append()メソッド
>>> a = [1, 2, 3, 4, 5] >>> a.append(100) >>> a [1, 2, 3, 4, 5, 100] >>> a.append([200, 300, 400]) >>> a [1, 2, 3, 4, 5, 100, [200, 300, 400]]
辞書
- 辞書の定義
>>> d = {"name":"Guido","nickname":"GvR"} >>> d {'nickname':'GvR','name':'Guido'}
- 要素の取り出しと代入
>>> d['name'] 'Guido' >>>d['name'] = "Guido van Rossum"
- 要素の追加
>>> d['birthyear'] = 1964 >>> d {'birthyear': 1964, 'nickname': 'GvR', 'name':'Guido van Rossum'}
- 要素の削除
>>> del d['nickname'] >>> d {'birthyear': 1964, 'name'=:'Guido'
- キーの一覧と確認
- keys()メソッドとhas_key()メソッド
タプル
- タプルを定義する
>>> t = (1, 2, 3, 4, 5) >>> t (1, 2, 3, 4, 5)
- タプルを利用する
>>> t[1] 2 >>> t[2:4] (3,4)
- タプルでは要素を書き換えることが出来ない!
- タプルの利点
- リストと異なり、タプルは辞書のキーとして利用出来る
組み込み型の分類とまとめ
- コレクション型
シーケンス型 マップ型 文字列、リスト、タプル 辞書
- 変更可能と変更不可能
変更可能な組み込み型 変更不可能な組み込み型 リスト、辞書 文字列、タプル
- 組み込み型相互の変換
関数名 説明 list([シーケンス]) リスト以外のシーケンス型をリストに変換 tuple([シーケンス]) タプル以外のシーケンス型をタプルに変換 str([オブジェクト]) オブジェクトを「ふさわしい表記の文字列」に変換