皆様、こんにちは。
前回に引き続きPythonについて記事を書かせていただきます。
実は、日本ではPythonの知名度はあまり高くありません。
我々の業界でもPerlやRubyの方がよく使われているように感じます。
実際に、前の記事で紹介したPyConでもwebサービス系の講演がほとんどでした。
しかし、Pythonについて少し調べた限りでは(まだ本当に少ししか調べられてないのですが)理数計算、統計に関するライブラリが非常に充実しています。例えば、少し命令を書くだけでヒストグラムが作れたりするなど、サイエンスの人間が使うのにも非常に適した言語であると感じます。
そこで、今回は Python の文法について、特に他の言語との違いという観点から、ごく一部ですがご紹介したいと思います。
Perlでif-else文を書くと、以下のようになります。
my $cnt = 0;
if ($cnt == 0){
$cnt++;
}
else{
print $cnt;
}
これをPythonで書いてみましょう。
cnt = 0
if cnt == 0:
cnt += 1
else:
print cnt
どうでしょうか?初めてPythonのソースを見た方は驚かれるかもしれません。私の予想する驚きポイントを以下に記します。
1.{}はないの?ブロック構造はどうやって表現するの?
2.命令の後ろには;とかいらないの?
3.インクリメント演算子はないの?
ブロック構造については、なんとインデントで表現します。インデントの深さでブロックを表現するため、インデントの深さを間違えるとすぐエラーになります。慣れると案外コードを組みやすい記法です。また、誰が書いても同じコードになりやすいため、可読性、保守性が上がります。
また、命令の後ろには;とか要りません。;を毎回打たなくていいのでプログラミング速度は上がります。ただし、ifやelse、for、whileの後ろには:が必要です。たまにPerlとかに戻ると、すぐ;をつけるのを忘れてしまいますのでお気を付け下さい。
あと、細かいことですが、++ や -- 等のインクリメント、デクリメント演算子はありません。+=で対応してください。
Pythonについては、サイエンスの立場から今後もいろいろとご紹介したいと思っています。
今日はこのくらいで。detでした。