読者です 読者をやめる 読者になる 読者になる

『初めてのPython 第3版』 学習日記 その1

ブログに書くプログラミングネタもCocoaプログラミング関連だけでなく、Pythonネタも書けるようになってきました。そこで、Cocoaプログラミングと同じく、備忘録代わりにPythonの学習事項をブログに書いて身につけていこうと思います。

テキストに使っている書籍は、以前からブログに書いているこの本です。

初めてのPython 第3版

初めてのPython 第3版

今回は【新たに確認したこと】という形でメモを書くのではなく、今まで使ってなかった「はてな記法」を利用して、ソースコードを書き、そのことについてコメントしていく形にしていきます。

それでは今回学習した部分のソースコードです。

class Worker:
  def __init__(self, name, pay):
    self.name = name
    self.pay = pay
  def lastName(self):
    return self.name.split()[-1]
  def giveRaise(self, percent):
    self.pay *= (1.0 + percent)

bob = Worker('Bob Smith', 50000)
sue = Worker('Sue Jones', 60000)
print bob.lastName()
print sue.lastName()
sue.giveRaise(.10)
print sue.pay

このソースコードは『初めてのPython 第3版』のp94に書いてあるものを少し整形したものです。現在、私は『初めてのPython 第3版』の第4章を終える範囲まで学習を迎えましたが、このclassの部分でちょっと手こずりましたね〜。と言っても、classの概念が分からないという訳で手こずった訳ではありません(一応Javaの経験が少しはありますので、classなどの概念とちょっとした使用ならできます。ポリモーフィズムを利用したOOPをそれほどは出来ませんが…)。単にPythonの文法でエラーをもらった』ということです。具体的に間違った点を以下に書きます。

  • "class"とか"def"の行末にコロン(:)を付け忘れた
  • "def __init__(self, name, pay):"を"def__init__(self, name, pay):"と書いた。
    • 上のどこが間違っているかって? やだな〜、"def"の後にスペースを付け忘れているじゃないですか!!
  • インデントがずれていた(←ちゃんとやっていたはずなのになぁ…)

…本当に、コンピュータって融通が利かないんだなと感じた日です。でも、Python特有の文法の箇所を間違えたってことは、これから後間違えなくなる布石だと思って、今後の糧になるんだ!と思うようにします。

ところで、Pythonのインデントって「Tab」と「Space」、どちらを使うのが普通なんですかね? 誰か知っている方がいらっしゃったら教えていただけませんか?