なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

pythonチュートリアルを呼んだときのメモ

先日時間があったのでpythonチュートリアルの日本語訳版を読んでみた。けっこう参考になることがあったのでそのtきにメモ帳にめもったものをここに掲載しておく。


pythonのスクリプトを実行してそのあとインタラクティブモードにする:
python -i


スライスで要素を削除する:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[0:2] = []
>>> l
[2, 3, 4, 5, 6, 7, 8, 9]
>>>

スライスで要素を挿入する:
>>> l = range(3)
>>> l
[0, 1, 2]
>>> l[1:1] = ["a","b","c"]
>>> l
[0, 'a', 'b', 'c', 1, 2]
>>>

スライスで全ての要素を消す:
>>> a[:] = []
>>> a
[]

for ループ内で用いる要素を変更するときはスライスを使ってコピーするといいらしい:
>>> for x in a[:]: # リスト全体のスライス・コピーを作る

ループ文でのelse:
ループ文はelse 節を持つことができます; else 節は、(for で) 反復処理対象のリストを使い切って
ループが終了したとき、または(while で) 条件が偽になったときに実行されます

インデントを示すために空白行の変わりにpass文を使わないといけない場合:
>>> while True:
... pass # キーボード割り込み(keyboard interrupt) をbusy-wait で待つ

関数内ではグローバル変数の値を知ることはできるが変更はできない。

変数とかの削除:
>>> x = 2
>>> x
2
>>> del x
>>> x
Traceback (most recent call last):
File "", line 1, in
NameError: name 'x' is not defined
>>>

データ型(intとか辞書型とかいろいろ)をファイルに保存して次回起動時に復元することのできるモジュール:pickle

#以下、チュートリアル日本語訳文の引用


複雑なデータ型を保存するためのコードを利用者に毎回毎回書かせてデバッグさせる代わりに、Python
ではpickle という標準モジュールを用意しています。pickle は驚くべきモジュールで、ほとんどどん
なPython オブジェクトも(ある形式のPython コードでさえも!) 受け取って文字列表現へ変換できます。こ
の変換過程はpickling (ピクルス(漬物) 化、以降pickle 化) と呼ばれます。文字列表現からオブジェクトを
再構成する操作はunpickling (逆pickle 化) と呼びます。pickle 化やunpickle 化の間、オブジェクトを表現
する文字列はファイルやデータに保存したり、ネットワーク接続を介して離れたマシンに送信したりでき
ます。
オブジェクトx と、書込み用に開かれているファイルオブジェクトf があると仮定すると、オブジェク
トをpickle 化する最も簡単な方法は、たった一行のコードしか必要ありません:
pickle.dump(x, f)
逆pickle 化して再びオブジェクトに戻すには、f を読取り用に開かれているファイル・オブジェクトと
仮定して:
x = pickle.load(f)
とします。

#引用終わり

リストの要素をランダムでひとつとりだす:
>>> import random
>>> l = range(10)
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.choice(l)
3
>>> random.choice(l)
3
>>> random.choice(l)
2


指定された範囲の整数をランダムで出力:
>>> for x in range(10):
random.randint(1,6)

2
2
3
1
3
6
5
4
3
6

圧縮モジュールでの文字列の圧縮例:
>>> import zlib
>>> s = "this is a zlib compress test !!!!!!!!!!!!!!!!!!!!"
s
>>> len(s)
49
>>> t = zlib.compress(s)
>>> t
"x\x9c+\xc9\xc8,V\x00\xa2D\x85\xaa\x9c\xcc$\x85\xe4\xfc\xdc\x82\xa2\xd4\xe2b\x85\x92\xd4\xe2\x12\x05E,\x00\x00\x8c\xd0\r'"
>>> len(t)
38


リストの内包表記:
>>> def f(x): return x**3
...
>>> f(3)
27
>>> [f(x) for x in range(3)]
[0, 1, 8]
>>>



スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/73-90a7974a

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。