Hatena::ブログ(Diary)

guccyonikki このページをアンテナに追加 RSSフィード

2008-05-02

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}

キーには文字列、数値などあらゆるデータ型を使える。

 JavaScriptrubyのように未宣言の変数をキーに使えない。

 宣言済みの変数をキーにディクショナリを使うと変数にバインドされた値がキーとなる。

>>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の実行は非常に手軽
  • 関数の使い方が出てこないとなんとも言えない
  • 未宣言の変数を使うとエラーなのは意外

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/guccyon/20080502/p1