プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

『初めての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」、どちらを使うのが普通なんですかね? 誰か知っている方がいらっしゃったら教えていただけませんか?