かんたん Python

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

リスト番号ごとにまとめたサンプルファイルです。適宜展開(解凍)してご利用ください。

(2020年11月27日更新)

ダウンロード
サンプルファイル

コードに誤りがあったため,正しいファイルに更新しました。お手数ですが,2020年11月27日より前にダウンロードされた方は,再度ダウンロードし直してください。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2019年2月8日最終更新)

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でファイルを開く。
日本語などのテキストは、文字コードを指定する。

(以下2018年9月3日更新)

P.114 ポイント

真偽値意外にも使えるが
真偽値以外にも使えるが

(以下2018年8月28日更新)

P.130 練習問題2-2の候補の1つ

123 _ 45
123 + 45

(以下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


import re

data = '''
太郎 taro@yamada.com
花子 hanako@flower.jp
一郎 ichiro@baseball.fr
祥子 sachico@happy.org

'''

relist =re.sub(
        r'([a-zA-Z0-9.-_]+)@([a-zA-Z0-9.]+)(.*$)',
        r'(***@\2jp)', data)

print(relist)


import re

data = '''
太郎 taro@yamada.com
花子 hanako@flower.jp
一郎 ichiro@baseball.fr
祥子 sachico@happy.org

'''

relist =re.sub(
        r'([a-zA-Z0-9.-_]+)@([a-zA-Z0-9.]+)(com|jp|fr|org)',
        r'(***@\2jp)', data)

print(relist)

 

(以下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行目


for i in range(1,10,1):


for i in range(1,10,3):


(以下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

リストの行末尾の「バックスラッシュ」は正しくは「円記号」です。キーボードの円記号キーを押して入力してください。