プログラム初心者向けではないと割り切っちゃってるので、楽に読めてとっても Goood :-)
初めての Pythonはあまりに網羅的で、リファレンス的に読むにはよいんですが、他の言語で、プログラミング経験がある人が読み切るのは、なかなか辛かったりしますからね。ちなみにこの本は、わからない言葉があってもガシガシ読み進めるのが吉。タプルとか、なんの説明もなしに出て来ても(P101 「タプルのリストが生成されます」とか)気にしない。後ろの方で説明が出て来ます。
ただ、誤植、サンプルコードのミスが多過ぎる気が……まぁ初版本ではこんなもんですかね。この点がおしいなぁ……
正誤表は
http://www.trirhino.com/books/ppyerrata
で公開されていますが、これ以外にも
P.215 サンプルコード 13-4-2-2
print b ミ c
は
print b - c
の誤り
P.218 サンプルコード 13-4-5-1
>>> len(c)
10
は、
>>> len(c)
5
の誤り
P.219 サンプルコード 13-4-6-1
return self.end ミ self.start + 1
は、
return self.end - self.start + 1
の誤り。
P.248 サンプルコード 16-1-4-2
>>> with open(test.txt','r') as f:
は
>>> with open('test.txt','r') as f:
の誤り
P.249 サンプルコード 16-1-5-1
>>> f.tell() # 現在位置は 6バイト目
4L
は
>>> f.tell() # 現在位置は 4バイト目
4L
の誤り
などがあります。もっとあった気もするけど、メモし始めたのが、途中からだったので忘れた。連絡しようと思ったんですが、誤植の連絡先とかが書いてないようなので、とりあえず放置で(^_^;
あとサンプルとして気になったのは、
P.80 サンプルコード 6-4-8-4
>>> `200`
200
repr関数は `` でも代用できるよ、という説明なんだから、小数を含むサンプルコードにして欲しかった(小数を含まない場合でも動作的には大丈夫なんだよ、ということを示したかったのかもしれないけど……まぁ私の気にしすぎかも)
P.156 サンプルコード 10-1-3-1
の
>>> (a is c) == (id(a) == id(c))
True
という箇所。flase == false なので True なんですが、aと c は値は同じだけど、オブジェクトとしては別物ですよ、ということを示すサンプルなだけに紛らわしい……その直前には、a と b はオブジェクトして同一です!というのを示すのに
>>> (a is b) == (id(a) == id(b))
True
としてるから、なおのこと(^_^;
いや、むしろ「ん?この流れだと falseって表示させたいんじゃ?」と思ってサンプルを実行してみたので、実は著者の狙い通りなのかも……
P. 169 サンプルコード 11-4-4-3
>>> def arvf ( *args ):
... print args
...
>>> arvf(1,2,3)
(1, 2, 3)
>>> arvf (*[1,2,3,])
(1, 2, 3)
……シーケンスの前に "*" を付けることで、なにが変わったのかがわからなくて切ない。・゚・(ノД`)・゚・。
ここは本気でわかんないので、あとで初めての Pythonで確認しよっと。
と、まぁいろいろ書きましたが良い本だと思います。とりあえずガシガシプログラム書きながら覚えたいんで、細かい仕様はあとでいいんだよ!という方にはお薦めの 1冊です :-)
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |