『ゼロから学ぶPythonプログラミング』 正誤表
注意深く執筆したつもりですが、現時点でに以下のミスや修正点が見つかっております。ご迷惑をおかけして申し訳ありません。
他に誤りや修正すべき点を見つけた方は、GitHubのIssue にてご指摘いただければ幸いです。
最終更新日:2023年11月30日
以下の誤植は5,6刷のものです。
ページ番号
誤
正
p. 27
こうして「突然キレるガンジー」が誕生したのである。
こうして「突然キレるガンジー」が誕生した、というものだ。この話は広く信じられていたが、実際にはソフトウェア的にこのようなバグは発生しないと、Civilizationの制作者、シド・マイヤー自身が否定している。
p. 27
https://note.mu/ruiu/n/n89d18450b1bb
参考:Sid Meier's Memoir! A Life in Computer Games
p. 180
11.6.4の「8. メモ化再帰の実装」の以下のコード(2箇所) if dic[(n, budget)] is not 0: # 追加(1)
if dic[(n, budget)] != 0: # 追加(1)
p. 182
11.6.5の「10. 解の再構成 get_menuの実装」の以下のコード if calc is 0:
if calc == 0:
p. 182
11.6.5の「10. 解の再構成 get_menuの実装」の以下のコード if dic[(n, budget)] is not dic[(n - 1, budget)]:
if dic[(n, budget)] != dic[(n - 1, budget)]:
p. 224
以下の式の右辺第二項は$a$が不要$\displaystyle\frac{dC}{da} = \sum_i^N (2 a x_i^2 - 2a x_i y_i) = 0$
$\displaystyle\frac{dC}{da} = \sum_i^N (2 a x_i^2 - 2 x_i y_i) = 0$
以下の誤植は第3,4刷及びKindle版でも未修正のものです。
ページ番号
誤
正
p.47
図4.1にa=[1]=4
とある
正しくはa[1]=4
p.49
図4.3にa=[1]=4
、a=[1] #=> 4
とある
正しくはb[1]=4
、a[1] # => 4
p.50
図4.4の中央にa=[4,5,6]
とある
正しくはb=[4,5,6]
p.132
ページ最後のコードに使われないs2
がある
正しくは以下の通り
以下の誤植は第2刷のもので、第3刷及びKindle版では修正されています。
ページ番号
誤
正
p.21
数式の右辺に添字$n$が抜けている。$x_{n+1} = x_n - \frac{x^3 - 1}{3x^2}$
$x_{n+1} = x_n - \frac{x_n^3 - 1}{3x_n^2}$
p.26
2.4.3発展課題の数式の右辺に添字$n$が抜けている。$x_{n+1} = x_n - \frac{x^4 - 1}{4x^3}$
$x_{n+1} = x_n - \frac{x_n^4 - 1}{4x_n^3}$
p. 124
図8.3のインスタンス変数がself.num
になっている。
正しくはself.__num
(図はインデントも間違っているので注意)
p. 206
2行目 「したがって、極限すれば物理学とは微分方程式を解く学問である。」
「したがって、極言 すれば物理学とは微分方程式を解く学問である。」
p. 93
一番下のArchive: popmap.zip
の記載されたボックスの色が入力を意味する青色
ボックスの色は出力を意味するベージュ
p. 124
図8.3のクラスのコードがself.num
となっている
正しくは self.__num
とnum
にアンダースコアが二つ付く
p. 140
9.3.2の2つ目のボックスの以下の記述 data = np.array([1,2,3])
a = np.array([1,2,3])
p. 140
9.3.2の下から二つ目のボックスの以下の記述 print(data)
print(a)
p. 141
9.3.3の最初のボックスの以下の記述 data.shape # => (2,2)
a.shape # => (2,2)
p. 177
「4. 貪欲法の実装」のgreedy
関数の11行目print(f"{names[i]} {price[i]} Yen {cals[i]} kcal")
(price
→prices
) print(f"{names[i]} {prices[i]} Yen {cals[i]} kcal")
以下の誤植については書籍版第1刷にあるものであり、第2刷及びKindle版では修正されています。
ページ番号
誤
正
p. ix
Numpy
NumPy (Pは大文字)
p. 10
「2. 五芒星の描画」のコードの2行目 draw = ImageDraw.raw(im)
draw = ImageDraw.raw(img)
p. 34
図3.2の「関数が作る」のが「ローカルグループ」「中から外を見ることはできない」「右側の矢印が右向き」
「関数が作る」のは「ローカルスコープ 」「中から外を見ることはできる 」「右側の矢印は左向き 」
p. 41
とすると、生成するイメージを大きくすると見やすくなる。
とすると、生成されるイメージが大きくなるため見やすくなる。
p. 61
できたリストをb返せ
できたリストをbに 返せ
p. 66
12行目 「8ビットが0でない」
「8ビット目 が0でない」
p. 124
図8.3のクラスのコードのインデントが不正。
正しいインデントは以下の通り。
p. 124
図8.4のメッセージが「c = Counter()
」
正しくはc.count()
p. 140
Numpy
NumPy (Pは大文字)
p. 141
np.zeros((2,2)))
np.zeros((2,2))
(右側の閉じカッコが一つ多い)
p. 156
8行目 「一方、プログラミング言語を逐次的に解釈して実行するのがスクリプト言語であり」
「一方、プログラミング言語を逐次的に解釈して実行するのがインタプリタ言語 であり」
p. 156
9行目 「多くのスクリプト言語はバイトコード(bytecode)と呼ばれる」
「多くのインタプリタ言語 はバイトコード(bytecode)と呼ばれる」
p. 161
図10.7のBINARY_MULTIPLYの箱のラベルが誤っている
正しくは以下の通り。
p. 174
図11.6のAとCの間のコストが2
AとCの間のコストは7
p. 174
図11.7のAとCの間のコストが2
AとCの間のコストは7
p.184
アッペルとハーケンは、四色問題問題を四色問題問題 を
アッペルとハーケンは、四色問題四色問題を
p. 188
「random.randint」から2行目 「これは6面サイコロを10回ふることを」
「これは6面サイコロを5 回ふることを」
p. 197
6行目「いま、先ほどの図で3の所属する会社と5の所属する会社を」
「図12.6の下の図で 3の所属する会社と5の所属する会社を」
p. 209
「優位に立つためため に必要」
「優位に立つために必要」
p. 240
「言われるの注意」
「言われるので 注意」