«

»

1月 17

初めてのPython(第二版)を読んだ(2)

またまた備忘録的に書いてきます。技術書を読むときにイライラしてしょうがないのでELECOMの書見台買いました。
あと、コンピュータ部幽霊部員になりましたw

zip関数…複数のシーケンスに対して平行に同時アクセスする関数。

>>> list1 = [1,2,3,4]
>>> list2 = [5,6,7,8]
>>> zip(list1,list2)
[(1, 5), (2, 6), (3, 7), (4, 8)]
>>> for x,y in zip(list1,list2):
...     print x+y
...
6
8
10
12

こうなります。知らんかった。

>>> __doc__ = 'This script is Free!!'

ドキュメンテーション文字列。スクリプトの説明などを入れるらしい。

名前空間
ローカルスコープ→外側の関数のスコープ→グローバルスコープ→ビルトインスコープ (LEGBルール)

引数の数を自由に増やす

>>> def func1(name):
...     print name
...
>>> func1('foo','hogeeee')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: func1() takes exactly 1 argument (2 given)
>>> def func1(*name):
...     print name
...
>>> func1('foo','hogeeee')
('foo', 'hogeeee')

ほうほう

名前による引数のマッチング

>>> def func2(name,password):
...     print 'name: '+name
...     print 'password: '+str(password)
...
>>> func2('fooo',9873)
name: fooo
password: 9873
>>> func2(password=9873,name='fooo')
name: fooo
password: 9873

これはデフォルト値を使うときに特に便利

lambda!!! lambda!!!!!

>>> func3 = lambda x,y:x*y
>>> func3(5,4)
20

>>> func4 = lambda name,password:'Hello,%s! (password:%s)'%(name,password)
>>> func4('hoge',4239)
'Hello,hoge! (password:4239)'

ステートメントを式に直すのところはよくわからんかった

apply(),map(),リスト内包表記、ジェネレータとイレテータについてはまたそのうち。

関数は下手に外部の変数を参照/書き換えせずに、引数とreturnに頼ったほうが良いそうです。さらにすっきりしたコードがかけるように気を配りたいです。

デフォルト値が可変性オブジェクトである場合についての対処はまだ読んでる途中。

Permanent link to this article: http://lga128.nekobaka.net/2012/01/haji_py_part2/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload the CAPTCHA.