Pythonのお勉強
社内で『みんなのPython』を使っての読書会を行いました。
今回の範囲は P.11 〜 P.67
参加者は8名で全員、Python初心者。気になった部分だけメモ。
書式
end文や{ } といったブロックの終わりを示す文がなくインデントで表現する。
if True: print "hoge"
ステートメントは行単位とは限らなくとも良いみたいで、途中に改行を挟む事もできる。
ary = ["a", "b","c" ,"d"] # ["a","b","c","d"]
rubyとは違い前行の文末に,(カンマ)が来なくても良い。
ちなみに実行環境はPython2.3系。
組み込みデータ型
- タプル
要素の追加や変更、削除を行う事のできない固定長の配列のようなもの。
複数の変数に直接、値を代入する時などにも使える。
>>a,b,c = (1,2,3) >>a 1 >>b 2 >>c 3
- ディクショナリ
キーと値をペアにした要素を複数持つことのできるデータ型。
いわゆるハッシュ?
dic = {"key1": "value", "key2", 100}
キーには文字列、数値などあらゆるデータ型を使える。
JavaScriptやrubyのように未宣言の変数をキーに使えない。
宣言済みの変数をキーにディクショナリを使うと変数にバインドされた値がキーとなる。
>>key = (1,2,3) >>dic = {key: "value"} {(1,2,3): "value"}
文字列と数値の足し算はエラー。以下のような式は書けない。
price = 1000 + "YEN"
- 文字列
string型とunicode string型というものが存在する。
前者はAscii文字用の文字列。
後者はマルチバイト文字列を扱う事のできる文字列。
それぞれ以下のように表現する。
str = "hogehoge123" unicode_str = u"ほげほげ" #リテラルの前にuをつける
ダブルクォーテーション×3でヒアドキュメント
>>str = """ここから開始 改行コードを含めた 文字列の宣言です""" 'ここから開始\n改行コードを含めた\n文字列の宣言です'
- リスト
リストや文字列をシーケンス型と呼ぶ
シーケンス型は[n:m]を使って取得したい部分をスライスできる。
>>"abcdefg"[1:3] bc >>["a","b","c","d","e"][0:-2] ["a","b","c"]
リストのメソッドは破壊的なものが多い。戻り値がないところも要チェック。
>>ary = [1,2,3,4,5] >>print ary.reverse() # 何も表示されない=戻り値がない >>print ary [5,4,3,2,1] >>ary.append(10) # これも表示されない >>print ary >>ary.sort() # これも表示されない >>print ary [1,2,3,4,5,10]
演算
整数と整数の割り算は結果が丸められる。片方を少数にした場合は正しい値となる。
>>1 / 2 0 >>1.0 / 2 0.5
こんなところかな。
まとめ
- pythonの実行は非常に手軽
- 関数の使い方が出てこないとなんとも言えない
- 未宣言の変数を使うとエラーなのは意外