Python文法詳解(一刷) 正誤表
第1章
P.1
- 誤
次のようなというカテゴリーになるでしょう
- 正
次のようなカテゴリーになるでしょう
第2章
P.18
- 誤
>>> 10 // 3 3.0
- 正
>>> 10.0 // 3.0 3.0
P.21
- 誤
>>> S[1:4] 'bcd
- 正
>>> S[1:4] 'bcd'
第3章
p.48
- 誤
>>> a = 1 >>> 100 and x == 1 or 200 # x if y else z と同じ式
- 正
>>> x = 1 >>> x == 1 and 100 or 200 # x if y else z と同じ式 100
p.52
- 誤
base - 文字列を整数に変換する際の基数を指定し、省略時は10進数として変換します 0 の場合は、Python の整数リテラルとして変換します。
- 正
base - 文字列を整数に変換する際の基数を指定し、省略時は10進数として変換します。0 の場合は、Pythonの整数リテラルとして変換します。
p.53
- 誤
>> int('0b100', 0) # 2進数 100
- 正
>> int('0b100', 0) # 2進数 4
第4章
P.72
- 誤
>>> L[8:2:-1] # 9番目から3番目まで取得 ['8', '7', '6', '5', '4', '3'] >>> L[10:1:-3] # 10番目から1番目まで、後ろから2つおきに取得 ['9', '6', '3']
- 正
>>> L[8:2:-1] # 9番目から4番目まで取得 ['8', '7', '6', '5', '4', '3'] >>> L[10:1:-3] # 10番目から3番目まで、後ろから2つおきに取得 ['9', '6', '3']
P.74
- 誤
>>> slice(1, 10) # [1:10] と同じ slice(None, 10, 3)
- 正
>>> slice(1, 10) # [1:10] と同じ slice(1, 10, None)
P.75
- 誤
>>> L[3:7] = ['a', 'b', 'c', 'd'] # 4番目から7番目までの要素を置き換え >>> L [0, 1, 2, 'a', 'b', 'c', 'd', 7, 8, 9]
- 正
>>> L[1:4] = ['a', 'b', 'c', 'd'] # 2番目から4番目までの要素を置き換え >>> L [0, 'a', 'b', 'c', 'd', 4, 5, 6, 7, 8, 9]
P.88
- 誤
start、endを指定したときは、スライス演算と同じ規則で指定する範囲から、subを検索します。
- 正
start、endを指定したときは、スライス演算と同じ規則で指定する範囲から、valueを検索します。
P.92
- 誤
c = a; b = a; a = c;
- 正
c = b; b = a; a = c;
P.96
- 誤
>>> hello = '今日は' >>> hello.decode('utf-8') b'\xe4\xbb\x8a\xe6\x97\xa5\xe3\x81\xaf'
- 正
>>> hello = '今日は' >>> hello.encode('utf-8') b'\xe4\xbb\x8a\xe6\x97\xa5\xe3\x81\xaf'
P.97
- 誤
>>> s = 'とても ... 長くて ... 一行に収まらない ... 文字列'
- 正
>>> s = 'とても\ ... 長くて\ ... 一行に収まらない\ ... 文字列'
P.112
- 誤
>>> 'spam'.isalnum() True >>> 'スパムハム卵'.isalnum() # 日本語の文字もTrue True
- 正
>>> 'spam'.isalpha() True >>> 'スパムハム卵'.isalpha() # 日本語の文字もTrue True
P.121
- 誤
>>> 'spam ham egg sausage'.split(maxsplit=2) # 最大2回分割 ['spam, 'ham', 'egg sausage']
- 正
>>> 'spam ham egg sausage'.split(maxsplit=2) # 最大2回分割 ['spam', 'ham', 'egg sausage']
P.129
- 誤
b'\nspam\nham\negg\n\\t'
- 正
b'\nspam\nham\negg\n\t'
P.132
- 誤
>>> bytes.fromhex('73 70 61 6d'')
- 正
>>> bytes.fromhex('73 70 61 6d')
P.146
- 誤
chars を省略した場合、またはNoneを指定した場合は、全ての空白文字を削除します。
- 正
bytes を省略した場合、またはNoneを指定した場合は、全ての空白文字を削除します。
P.147
- 誤
文字列が + か - の符号ではじまる場合、符号をバイト列の先頭に移動します。
- 正
バイト列が + か - の符号ではじまる場合、符号をバイト列の先頭に移動します。
P.152
- 誤
>>> d['spam'] = 'egg' # キー 'ham' の値を `egg` に上書き
- 正
>>> d['spam'] = 'egg' # キー 'spam' の値を `egg` に上書き
P.156
- 誤
逆にnot in 演算子は、左項のキーが、右項の辞書に含まれない場合に、True を返します。not in 演算子は、逆に辞書に左項のオブジェクトと同じ値の要素が含まれない場合に、True を返します。
- 正
逆にnot in演算子は、左項のキーが、右項の辞書に含まれない場合に、Trueを返します。
P.158
- 誤
また、イテレータによるキーの列挙は、列挙中に辞書が変更されると無効になります。
- 正
P.159
- 誤
他の集合やイテラブルオブジェクトと、集合演算も行えます。
>>> d = {'spam':1, 'ham':2, 'egg':3, 'bacon':4} >>> view = d.keys() >>> view - ['spam', 'bacon'] {'spam', 'bacon'}
- 正
他の集合やイテラブルオブジェクトと、集合演算も行えます。
>>> d = {'spam':1, 'ham':2, 'egg':3, 'bacon':4} >>> view = d.keys() >>> view - ['spam', 'bacon'] {'ham', 'egg'}
P.164
- 誤
集合オブジェクトが返すキーの順番は一定ではなく。
- 正
集合オブジェクトが返すキーの順番は一定ではなく、
P.164
- 誤
要素の列挙は、列挙中に集合が変更されると無効になります。
- 正
要素の列挙は、列挙中に集合の要素数が変更されると無効になります。
P.169
- 誤
>>> s.discad(1)
- 正
>>> s.discard(1)
第5章
P.180
- 誤
start - インデックス値の初期値を指定します。省略時は 1 となります。
step - 数値の増分を指定します。省略時は 1 となります。
- 正
start - インデックス値の初期値を指定します。省略時は 0 となります。
P.184
- 誤
キーボード割り込みを書けられた時に、
- 正
キーボード割り込みをかけられた時に、
第6章
P.193
- 誤
>>> def spam(ham, egg, *args): ... print('ham={}, egg={}, args={}'.format(ham, egg, args))}
- 正
>>> def spam(ham, egg, *args): ... print('ham={}, egg={}, args={}'.format(ham, egg, args))
P.204
- 誤
from ..ham.egg import bacon # 親パッケージのham.egg.spam モジュールをインポート
- 正
from ..ham.egg import bacon # 親パッケージのham.egg.bacon モジュールをインポート
P.206
- 誤
$ cat spamp.zip >>spam
- 正
$ cat spam.zip >>spam
P.210
- 誤
from spam import func_spam
- 正
import spam func_ham = spam.func_spam
P.210
- 誤
# egg モジュールは、ham モジュールをインポートして、func_spam を呼び出す import ham ham.func_spam()
- 正
# egg モジュールは、ham モジュールをインポートして、func_spam を呼び出す import ham ham.func_ham()
P.210
- 誤
egg モジュールでは、ham モジュールを経由して、ham.func_spam() 関数を呼び出しています。
- 正
P.210
- 誤
このように、呼び出し方にかかわらず、関数を作成したモジュールが、常にその関数のグローバル名前空間として検索されです。
- 正
このように、呼び出し方にかかわらず、関数を作成したモジュールが、常にその関数のグローバル名前空間として検索されます。
P.220
- 誤
... super().ham() # 基底型の ham() を呼び出す
- 正
... super().spam() # 基底型の spam() を呼び出す
P.227
- 誤
したがって、インスタンスから属性HAMを取得すると、インスタンスの名前空間の検索は失敗しますが、失敗しますが、自動的にクラスの名前空間を次に検索し、
- 正
したがって、インスタンスから属性HAMを取得すると、インスタンスの名前空間の検索は失敗しますが、自動的にクラスの名前空間を次に検索し、
P.229
- 誤
def ham(self, arg): print(arg)
- 正
def egg(self, arg): print(arg)
P.229
- 誤
Spam = type('Spam', (), {'ham':method, 'ham':100})
- 正
Spam = type('Spam', (), {'ham':100, 'egg':method})
P.230
- 誤
type.__prepare__(metacls , name , bases , \*\*kwargs) パラメタ metacls - メタクラス名を指定します。 name - クラス名を指定します。
- 正
type.__prepare__(name , bases , \*\*kwargs) パラメタ name - クラス名を指定します。
第7章
P.250
- 誤 (7.1.6.6項)
raw -読み込みを行う、バッファなしストリームオブジェクトを指定します。
- 正
raw -書き込みを行う、バッファなしストリームオブジェクトを指定します。
P.251
- 誤
raw -読み込みを行う、バッファなしストリームオブジェクトを指定します。
- 正
raw -読み書きを行う、バッファなしストリームオブジェクトを指定します。
P.252
- 誤
line_buffering - True を指定する行バッファリングとなり、改行文字を出力した後に出力バッファをフラッシュします
- 正
line_buffering - True を指定すると、行バッファリングとなり、改行文字を出力した後に出力バッファをフラッシュします
P.262
- 誤
処理を処理を再開します。
- 正
処理を再開します。
P.266
- 誤
>>> list(x+y for x in 'abc' ... for y in '123' if y < '3'} # for のネストと if
- 正
>>> list(x+y for x in 'abc' ... for y in '123' if y < '3') # for のネストと if
P.267
- 誤
print('Spam: {0.spam}, Ham: {0.ham}'.format(self.spam, self.ham))
- 正
print('Spam: {0.spam}, Ham: {0.ham}'.format(self))
P.267
- 誤
... print('Hello {!'.format(', '.join(names))}
- 正
... print('Hello {}!'.format(', '.join(names))}
P.271
- 誤
メソッド呼び出しので第一引数として、インスタンスではなく、常にクラスオブジェクトが渡されるようになります。
- 正
メソッド呼び出しの第一引数として、インスタンスではなく、常にクラスオブジェクトが渡されるようになります。
P.273
- 誤
>>> spam.x 0 >>> spam.__dict__['ham'] = 999 # インスタンスの属性値を変更 >>> spam.x # プロパティは影響を受けない 0
- 正
>>> spam.ham 0 >>> spam.__dict__['ham'] = 999 # インスタンスの属性値を変更 >>> spam.ham # プロパティは影響を受けない 0
P.274
- 誤
ダック・タイピング(Dock typing)
- 正
ダック・タイピング(Duck typing)
P.288
- 誤
__getattribute__(attr)
- 正
__getattribute__(self, attr)
第8章
P.294
- 誤
object - 参照カウントをオブジェクトを指定します。
- 正
object - 参照カウントを取得するオブジェクトを指定します。
P.299
- 誤
- 正
P.299
- 誤
そのように、オブジェクトを調査することイントロスペクションと呼びます。
- 正
そのように、オブジェクトを調査することをイントロスペクションと呼びます。
P.301
- 誤
>>> type(unknown_obj).__module__.__file__ '/usr/local/lib/python3.4/site-packages/unknown.py
- 正
>>> import unknown_module >>> unknown_module.__file__ '/usr/local/lib/python3.4/site-packages/unknown_module.py
P.302
- 誤
行番号 バイト ニーモニック 引数 引数が示す値 コード の位置
- 正
行番号 バイト 命令コード 引数 引数が示す値 コード の位置
謝辞
本正誤表の作成にあたっては、下記の皆様をはじめ、多くの方々のご協力を頂きました。心よりお礼申し上げます。
(順不同)