Pythonの勉強 #1 (「みんなのPython」Chapter 1-1~4)
今回はPythonの勉強。
使用する本
オライリーじゃないです。オライリー本はこの本を読み終えたら買ってみる予定。
- 作者: 柴田淳
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/08/22
- メディア: 単行本
- 購入: 11人 クリック: 624回
- この商品を含むブログ (180件) を見る
Capter 1-1
Pythonって凄いんだぜ!ってことが書かれてます。
BitTorrentとかyumってPythonで作られてたんですね。
Capter 1-2
Pythonのインストール方法が書かれています。
Capter 1-3
インタラクティブシェルの説明とか変数についてとかインデントの重要さとかエディタとかについて書かれてます。
終了時の波括弧とか「end」とかないから、プログラムがすっきりしてて見やすいです。
Capter 1-4
組み込みのデータ型
- 数値
- 文字列
- リスト
- タプル
- 辞書(ディクショナリ)
リストはPHPとかJavaの配列と同じ。タプルは要素の追加や変更ができないらしい。辞書はPHPの連想配列と同じかな。このほかにもbool型とset型があるらしい。set型ってなんのことだろう。
文字列のインデックス
文字列には配列っぽくインデックスが振られてる。たとえば
"abcd"
という文字列があったら、aには0、bには1、などという番号が振られている。
>>> digits = "1234"
>>> digits[2]
'3'
型キャスト
>>> nstr = "1234"
>>> int(nstr) + 5678 #文字列を数値に変換
6912
- 文字列を数値に変換…int()
- 数値を文字列に変換…str()
- 小数点の付いた文字列を数値(浮動小数点)に変換…float()
文字列の検索・置換
>>> digits = "1234"
>>> digits.find("23")
1
>>> digits.("89")
-1
引数に入れた文字列が見つかったときは先頭からのインデックスを返す。見つからなかったときは-1を返す。
>>> digits.replace("23", "2233") #"23"を"2233"に置換して返す
'122334'
>>> digits
'1234'
replace()メソッドを使用しても、もとの変数の値は変わらない。
encode()
いろんなエンコードの8ビット文字列に変換できる。
>>> ustr = u"abcあいう"
>>> len(ustr) #ユニコード文字列の長さを調べる
6
>>> bytestr = ustr.encode("utf-8")
>>> len(bytestr) #UTF-8の8ビット文字列の長さを調べる
12
8ビット文字列が収まってる文字列型は1バイトを1文字と数える。UTF-8では「あいう」はそれぞれ3バイトなので、12文字と数える。
よって、インデックスを使って文字列の一部を取り出すなどの際には注意が必要。
リストの定義
>>> a = [1, 2, 3, 4, 5]
>>> a
[1, 2, 3, 4, 5]
スライス
同じく上の例の続き。
>>> a[1:3]
[2, 3]
>>> a[3:4]
[4]
>>> a[2:]
[3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[2:100] #エラーにならない
[3, 4, 5]
スライスは文字列やタプルにも使用できる。
リストの要素を削除
del文を使う。
>>> a = [1, 2, 3, 4, 5]
>>> del a[2]
>>> a
[1, 2, 4, 5]
辞書の定義
>>> d = {"name":"Guido", "nickname":"GvR"}
>>> d
{'nickname': 'GvR', 'name': 'Guido'}
キーの並び順はいつも同じとは限らない。
タプルの定義
>>> t = (1, 2, 3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
書き換えができないということ以外はリストと同じ。
組み込み型の相互変換
>>> t = (1, 2, 3, 4, 5)
>>> a = list(t)
>>> a
[1, 2, 3, 4, 5]
>>> t2 = tuple(a)
>>> t2
(1, 2, 3, 4, 5)