Python言語によるプログラミング・イントロダクション: 世界標準MIT教科書 (近代科学社) サポートページ
ここは,John V. Guttag著,Introduction to Computation and Programming Using Python (MIT Press) の訳書のサポートページです.
第二版のサポートページはこちら
EdXで,本書の内容に沿った講義MIT6.00x, MIT6.00.2xが無料で受けられます.
翻訳者
久保幹雄(東京海洋大学):1 章,付録Python 2.7 簡易マニュアル
麻生敏正(東京海洋大学):2から4 章
木村泰紀(東邦大学) :5から7 章
藤原洋志(信州大学) :8から10 章
関口良行(東京海洋大学):11から13 章
小林和博(海上安全技術研究所):14から16 章
並木誠(東邦大学) :17から19 章
関連リンク
- 元本のサポートページ
- MIT OpenCoreseWare
- EdX
- Amazon.co.jpから購入
誤植など(数式はLaTeX表記)
第1刷りの誤植
- 訳者紹介のページ:7行目と8行目の間に:「東京工業大学大学院情報理工学研究科修了,博士(理学)」を追加.
- p.12 2行目:「浮動小数点型のリテラル...と同じである.」=>「float型のリテラルは必ず小数点を含む(例えば3.0や3.17や-28.72).(float型のリテラルは,科学的な表記を用いて書くことも可能である.例えば,1.6E3 は $1.6 \times 10^3$ つまり 1600.0 を表す.
- 第2章から第4章のプログラム内のドキュメンテーション文字列:最初の”u”をとる.
- p.25 下から10行目:このプログラムが終わる際,xの値はどうなっているだろうか?」=>「どんな値のxに対して,このプログラムは終了するだろうか?」
- p.27 上から2行目:「とても興味深い以下のコードを実行してみよう。」
=>「面白半分で以下のコードを実行してみよう.」 - p.58 下から4行目, 一番下,p.59一番上:オペレーションシステム => オペレーティングシステム
- p.245 16.1 ごみ入れごみ出し(ガイゴー)に側注「GIGO:garbage in, garbage out.の略語」を追加.
- p.279 側注3-4行目:「ニューヨーク生まれのは」=>「ニューヨーク生まれの」
- p.317 5行目:キー k を =>キー k が
第2刷りの誤植
- p.14 9行目:1つ以上持つ場合 -> 2つ以上持つ場合
- p.15 2行目:面積の計算の場合... =>面積を計算するときには,変数の名前diameter(直径)をradius(半径)に直すか,もしくはdiameterを2.0で割るべきである.
- p.15 下から6行目:では,...の行 =>空白をとって,左に詰める
- p.15 下から6行目:代入文の右側は...=> 代入文の右側の式は,紐付けを行う前に評価される.これは,2つの変数の紐付けを入れ替えたいとき,複数の割り当てを同時に書くことができるので,有用である.
- p.17 10行目:True判定した場合 -> Trueと判定した場合
- p.20 下から4行目:文字列の最後からの検索する際に -> 文字列の最後から検索する際に
- p.26 8行目:~と置き換えると、8の立方根を探し始める。 -> ~と置き換えて、8の立方根を探してみよう。
- p.26 下から17行目:経験豊な -> 経験豊富な
- p.26 下から10行目:実装するのが優しく -> 実装するのが易しく
- p.27 側注28:rootがあるから -> (root,1)があるから
- p.27 下から2行目:[40, 30 , 20, 10] -> [40, 30, 20, 10]
- p.28 1行目:規定値 -> 既定値 (以下p.42 7,9行目、p.281 3行目、p.316 下から7行目も同様)
- p.31 下から7行目:辞書順で先の場合 -> 辞書順で前の場合
- p.31 下から7行目:戻るべきとわかる。 -> 戻るべきとわかる。また、文字の並びがそのページの最後の単語よりも後の場合、先に進むべきとわかる。
- p.36 7行目:多変数多項式に一般化は -> 多変数多項式への~
- p.39 コード4.1:見出し 2分法を用いた平方根の近似 -> 平方根の近似解のための2分法
- p.40 下から5行目:関数が利用される際、仮引数は関数呼出し、実引数と -> 仮引数は関数呼出し
- p.41 7行目:関数が呼出しは以下のようになる -> 関数の呼出しは以下のようになる
- p.41 脚注2:Alonzo -> Alonzo Church
- p.42 ブロック2:printName(‘Olga’, ‘Puchmajerova’, False) -> 重複のため、1行削除
- p.43 下から7行目:このテーブルはすべての関数で定義されたすべての名前を -> このテーブルは関数で定義されたすべての名前を
- p.46 下から6行目:3つの “”” マークの -> “”” マークの
- p.47 上のコード:findRoot(~) “””xと…返す””” -> “””の削除
- p.47 下から1行目:findRootのドキュメンテーション文字列の最初の2行は -> ~文字列の最初の1行は
- p.51 14行目:初めの月の最終日(月0と呼ぶ) -> 初めの月(月0と呼ぶ)の最終日
- p.51 15行目:2月目の最終日では -> 次の月の~
- p.51 下から2行目:females(n+ 2)= -> females(n+2)
- p.54 下から5行目:部分問題の回答は、元の問題を解くために統合できる。 -> 部分問題の解答を統合すると、元の問題を解くことができる。
- p.54 下から4行目:元の問題を同じ問題をより簡単なものに -> 元の問題を同じ問題でより簡単なものに
- p.56 1行目:名前numCalls -> 名前numFibCalls
- p.57 脚注11:呼び出す際にドット表記を用いることと -> メソッドの呼び出しでドット表記を用いることと
- p.90 11行目:関数の再初期化を -> 変数の再初期化を
- p.108 下から4行目:self.Name -> self.name
- p.108 下から4行目:self.name.__lt__(self.other) -> self.name.__lt__(other.name)
- p.109 下から3行目:継承する(inherit) -> 継承する(藤原注:太字でなく普通のフォントで)
- p.112 コード8.4下から2行目:(藤原注:class Grad の行頭の空白を4つだけ削除
- p.112 コード8.4下から1行目:(藤原注:pass の行頭の空白を4つだけ削除)
- p.112 図8.1:G -> Grad
- p.113 下から7行目:結び付けられてられている -> 結び付けられている
- p.113 下から4,5行目:結び付けられてられている -> 結び付けられている
- p.117 11行目:実装を変更 -> 実装に変更
- p.139 図9.5の左上:1e301 -> x1e301
- p.137 下から9行目:リストL -> L
- p.137 下から8行目:リストL -> L
- p.150 9行目と10行目の間:以下のような図を追加(原著 p.133 中ほどの図)。
Left in list 1 Left in list 2 Result
——————————————————
[1,5,12,18,19,20] [2,3,4,17] []
[5,12,18,19,20] [2,3,4,17] [1]
[5,12,18,19,20] [3,4,17] [1,2]
[5,12,18,19,20] [4,17] [1,2,3]
[5,12,18,19,20] [17] [1,2,3,4]
[12,18,19,20] [17] [1,2,3,4,5]
[18,19,20] [17] [1,2,3,4,5,12]
[18,19,20] [] [1,2,3,4,5,12,17]
[] [] [1,2,3,4,5,12,17,18,19,20] - p.156 側注:状態にある規格のこと -> 状態にある
- p.160 下から 3 行目:パブリックドメインの規格である -> パブリックドメインである
- p.161 上のコード:#go back to working on figure 1 -> #figure 1 に戻る
- p.161 下から 3 行目:1 年複利で 2% -> 1 年複利で 5%
- p.164 下から 2 行目:「8章で行ったように、~プロットを生成する」を削除し、以下の段落を加える.
\verb|Mortgage| クラスの自明でないメソッドは \verb|p.lotTotp.d|
と \verb|p.lotNet| である.メソッド \verb|p.lotTotp.d| は単に累積支払額をプロットする.
メソッド \verb|p.lotNet| は,消費された現金からローンの支払いによって得た純資産を引いいたものをプロットすることで.住宅ローンの総コストの近似値を表示する. - p.166 中段のブロック:3 – a1=[2 1-1] a1*a2=[2 832] -> 3 – a1 = [ 2 1 -1] a1*a2 = [ 2 8 32]
- p.180 コード12.5:p.ylab.ylabel(yLabel) p.ylab.p.lot(…) -> コマンドごとにセミコロンを入れる
- p.180 コード12.5:def runTrial(numFlip.s): の前を一行開ける
- p.185 コード12.9:3,4 行目の if 文のインデントを一段下げる
- p.187 上から 14 行目、下から一行目、コード 12.10:誤差棒 -> エラーバー
- p.188 コード12.10:8 行目の xVals.ap.p.end(2**exp.) のインデントを一段下げる
- p.189 下から 13 行目:インター到着回数,つまり車が高速道路に進入する回数
-> 到着時間の間隔,つまり車の高速道路への進入 - p.192 上から 3 行目:0 から 9 までのそれぞれの数を1桁目に持つ整数は
-> 1 から 9 までのそれぞれの数を最上位桁に持つ整数は - p.197 コード12.15:10,11 行目 else: used.ap.p.end(hashVal) のインデントを一段下げる
- p.202 コード13.3:下から一行目 return random.choice(step.Choices) のインデントを一段下げる
- p.204 1 行目:得られる6):-> 「CV = nan」に参照を移動する
- p.206 コード13.5:3-4,7-8 行目 step.Choices = … return … のインデントを一段下げる
- p.209 コード13.8:下から 6 行目から 下から 2 行目 p.ylab.title … p.ylab.legend … のインデントを一段「戻す」
- p.210 上から 4 行目:変動係数が小さい -> 変動係数が大きい
- p.212 下から 8,7 行目:土地 -> Field
- p.263下から6,7行目,p.264コード17.2の上から2行目:Items -> items
- p.266上から8行目,p.266 コード17.3の見出し:力づく -> 力ずく
- p.267下から12行目:Ivan Boesky (太文字でなく普通のフォントで)
- p.271上から4行目:ノードの名前からなるリスト -> ノードからなるリスト
- p.272上から4行目:目的地 -> 目的地ノード
- p.275下から7行目:次のノードを -> 次の子ノードを
- p.278下から7行目:1つ以上 -> 1つより多く
- p.279上から5行目:dynamic programing -> dynamic programming
- p.284コード18.3の上から4行目,p.286コード18.5上から5行目:総重量 -> 総価値
- p.295上から1行目:compareAnimal -> compareAnimals
- p.296表19.2:ヤドガエル -> ヤドクガエル(2ヶ所)
- p.302コード19.6:中心 -> 重心(4カ所)
- p.312コード上から9行目,p.312本文上から5行目:v1 -> v2