『ゼロから学ぶPythonプログラミング』 正誤表

注意深く執筆したつもりですが、現時点でに以下のミスや修正点が見つかっております。ご迷惑をおかけして申し訳ありません。

他に誤りや修正すべき点を見つけた方は、GitHubのIssueにてご指摘いただければ幸いです。

最終更新日:2023年11月30日

第5,6刷正誤表

以下の誤植は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刷正誤表

以下の誤植は第3,4刷及びKindle版でも未修正のものです。

ページ番号
p.47 図4.1にa=[1]=4とある
図4.1誤
正しくはa[1]=4
図4.1正
p.49 図4.3にa=[1]=4a=[1] #=> 4とある
図4.3誤
正しくはb[1]=4a[1] # => 4
図4.3正
p.50 図4.4の中央にa=[4,5,6]とある
図4.4誤
正しくはb=[4,5,6]
図4.4正
p.132 ページ最後のコードに使われないs2がある
p132誤
正しくは以下の通り
p132正

第2刷正誤表

以下の誤植は第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になっている。
図8.3誤
正しくはself.__num(図はインデントも間違っているので注意)
図8.3正
p. 206 2行目 「したがって、極限すれば物理学とは微分方程式を解く学問である。」 「したがって、極言すれば物理学とは微分方程式を解く学問である。」
p. 93 一番下のArchive: popmap.zipの記載されたボックスの色が入力を意味する青色 ボックスの色は出力を意味するベージュ
p. 124 図8.3のクラスのコードがself.numとなっている
error
正しくは self.__numnumにアンダースコアが二つ付く

error
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")
(priceprices)
print(f"{names[i]} {prices[i]} Yen {cals[i]} kcal")

第1刷正誤表

以下の誤植については書籍版第1刷にあるものであり、第2刷及びKindle版では修正されています。

ページ番号
p. ix Numpy NumPy (Pは大文字)
p. 10 「2. 五芒星の描画」のコードの2行目
draw = ImageDraw.raw(im)

draw = ImageDraw.raw(img)
p. 34 図3.2の「関数が作る」のが「ローカルグループ」「中から外を見ることはできない」「右側の矢印が右向き」
図3.2誤
「関数が作る」のは「ローカルスコープ」「中から外を見ることはできる」「右側の矢印は左向き
図3.2正
p. 41 とすると、生成するイメージを大きくすると見やすくなる。 とすると、生成されるイメージが大きくなるため見やすくなる。
p. 61 できたリストをb返せ できたリストをb返せ
p. 66 12行目
「8ビットが0でない」

「8ビットが0でない」
p. 124 図8.3のクラスのコードのインデントが不正。
図8.3誤
正しいインデントは以下の通り。
図8.3正
p. 124 図8.4のメッセージが「c = Counter()
図8.4誤
正しくはc.count()
図8.4正しい
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の箱のラベルが誤っている
図10.7誤
正しくは以下の通り。
図10.7正
p. 174 図11.6のAとCの間のコストが2 図11.6誤 AとCの間のコストは7 図11.6正
p. 174 図11.7のAとCの間のコストが2 図11.7誤 AとCの間のコストは7 図11.6正
p.184 アッペルとハーケンは、四色問題問題を四色問題問題 アッペルとハーケンは、四色問題四色問題を
p. 188 「random.randint」から2行目
「これは6面サイコロを10回ふることを」

「これは6面サイコロを5回ふることを」
p. 197 6行目「いま、先ほどの図で3の所属する会社と5の所属する会社を」 図12.6の下の図で3の所属する会社と5の所属する会社を」
p. 209 「優位に立つためために必要」 「優位に立つために必要」
p. 240 「言われるの注意」 「言われるの注意」