この記事を読むのに必要な時間:およそ 0.5 分
ダウンロード
リスト番号ごとにまとめたサンプルファイルです。適宜展開(解凍)してご利用ください。
(2020年11月27日更新)
- ダウンロード
- サンプルファイル
コードに誤りがあったため,正しいファイルに更新しました。お手数ですが,2020年11月27日より前にダウンロードされた方は,再度ダウンロードし直してください。
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
P.311 下から3行目の解説
誤 |
これが、インスタンス変数です。
|
正 |
これが、インスタンス変数として利用できるようになります。
|
P.403 3行目からの解説
誤 |
openで取得されるファイルオブジェクトは、ASCIIコード(英数字と一部の記号)しか扱えません。
|
正 |
openで取得されるファイルオブジェクトは,そのままだと文字コードを正しく読み取れないことがあります。例えば,Windowsで
|
P.403 codecsを紹介する箇所
誤 |
(略)どうすれば正しく読み取れるのでしょうか。「codecs」を利用します。
|
正 |
(略)どうすれば正しく読み取れるのでしょうか。文字コードを指定すれば利用できます。ここでは「codecs」を利用して試します。
|
P.404 codecsとファイルオブジェクトに関する解説文
下記の一文は誤りです。
誤 |
ただし、codecsのopenでは、マルチバイトに対応したファイルオブジェクトが返されます。
|
正 |
(この文章はないものが正しいです。)
|
P.404 図8-6のキャプションと実際の図
誤 |
openでは半角英数字のみ対応したファイルオブジェクトが返されるがcodecs.openではマルチバイト対応のファイルオブジェクトが返される。
|
正 |
文字コードを指定しない場合はファイルの読み込みに失敗する。
|
P.405 ポイント
誤 |
日本語などのテキストは、codecs.openでファイルを開く。
|
正 |
日本語などのテキストは、文字コードを指定する。
|
P.114 ポイント
誤 |
真偽値意外にも使えるが
|
正 |
真偽値以外にも使えるが
|
(以下2018年8月28日更新)
P.130 練習問題2-2の候補の1つ
(以下2018年5月15日更新)
P.409 8-02のリスト8-8とリスト8-8の抜粋部分
誤 |
with open('sample.txt', 'w') as f:
while True:
msg = input('input text:')
if msg == '':
break
f.write(msg + '\n')
print('save all messages!')
|
正 |
with open('sample.txt', 'w') as f:
n = 1
while True:
msg = input('input text:')
if msg == '':
break
f.write(str(n) + ': ' + msg + '\n')
n += 1
print('save all messages!')
|
実行自体はできますが,出力結果が書籍と異なっていました。
(以下2018年4月6日更新)
P.551 練習問題11-3の1行目
誤 |
from PIL import Image
|
正 |
from PIL import Image, ImageOps
|
(以下2018年4月3日更新)
P.433 9-01の「モジュールをimportする」の「・バージョン情報」の見出し
誤 | バージョン情報(sys_version_info)
|
正 | バージョン情報(sys.version_info)
|
P.451 9-03のリスト9-7の見出し
誤 | __name__処理の追加(calcData.pyに追記)
|
正 | __name__処理の追加(calcdata.pyに追記)
|
P.453 9-03の「sys.argvでパラメータ利用」の「・読み込むファイル名を指定する」内本文
誤 | calcdata.pyに追記した処理(リスト9-6)...
|
正 | calcdata.pyに追記した処理(リスト9-7)...
|
P.499 10-05のリスト10-17
(以下2018年3月30日更新)
P.241 4-04の「リスト内包表記の例」の「・基本は変数とfor文」の実行例の4行目
誤 |
[y for y in {Alpha: 'a' , beta: 'b'}]
|
正 |
[y for y in {'alpha': 'a' , 'beta': 'b'}]
|
P.270 下から3行目5-02の「戻り値の利用」の説明文
誤 |
...してしておくことで
|
正 |
...指定しておくことで
|
P.281 下から5行目5-02の「変数のスコープ」の説明文
誤 |
for、whilteなどの内部で作成した変数は、...
|
正 |
for、whileなどの内部で作成した変数は、...
|
P.311 下から3行目 6-02の「変数」の「・インスタンス変数を使う」の説明文
誤 |
MyObjeクラスの中に、「message」...
|
正 |
Memoクラスの中に、「message」...
|
P.327 6-03のコラム「+演算子で加算する」の説明文
P.342 下から7行目6-04の「オーバーライド」の「・メソッドは上書きできる」内の解説
誤 |
Peronにあるメソッドと同じ...
|
正 |
Personにあるメソッドと同じ...
|
P.368 7-02の「tryによる例外処理」の「・try-exceptについて」内の解説
誤 |
例外は受け止めれれず
|
正 |
例外は受け止められず
|
(以下2018年3月26日更新)
3-01の図3-11
誤 |
insert(1, 100)
|
正 |
insert(1, 1000)
|
最上段の図中の表記が間違っていました。
3-02の「タプルの乗算」の実行例
実行結果の末尾にtpという文字が含まれていますが実際は表示されません。
4-03のリスト4-15とその実行結果
誤 |
data ={'国語':98,'数学':82,'理科':67,'社会':59,'英語':65}
total = 0
for k in data:
if k in {'国語', '数学', '英語'}:
print(k + ":" + str(data[k]))
else:
continue
total += data[k]
else:
print("=======データは以上です=======")
ave = total // len(data)
msg = "合計:" + str(total) + " 平均:" + str(ave)
print(msg)
|
正 |
data ={'国語':98,'数学':82,'理科':67,'社会':59,'英語':65}
total = 0
for k in data:
if k in {'国語', '数学', '英語'}:
print(k + ":" + str(data[k]))
else:
continue
total += data[k]
else:
print("=======データは以上です=======")
ave = total // 3 # 3教科で計算
msg = "合計:" + str(total) + " 平均:" + str(ave)
print(msg)
|
平均の算出が誤っていました。平均は正しくは81です。
(以下2018年3月8日更新)
3-01 リスト(list)のinsertメソッド
誤 |
200の場所(インデクス=2)に1000が挿入されるため、200はインデクス3に、300はインデクス4にずれていきます。
|
正 |
200の場所(インデクス=1)に1000が挿入されるため、200はインデクス2に、300はインデクス3にずれていきます。
|
4-02 for文のリスト4-11の4行目
(以下2018年2月19日更新)
4-02 for文(221p)のリスト4-10
誤 |
for i in range(num):
print(i)
|
正 |
for i in range(10):
print(i)
|
P.444 9-02 リスト9-5
リストの行末尾の「バックスラッシュ」は正しくは「円記号」です。キーボードの円記号キーを押して入力してください。