Hey, Scripting kiddy! は皆様のPCを通じた悩みなどをScript kiddyのスクリプトで解決しようという企画です。

Script kiddyさんが色んな人の悩みをスクリプトで解決していく様はまさに痛快。関係のない無駄話も彼の魅力の一つです。

※注
これは、Microsoftがやっている「Hey,scripting guy!」のパクリ企画です。

公開日:2008.06.23

たまには一休み

Hey, Scripting kiddy! は皆様のPCを通じた悩みなどをScript kiddyのスクリプトで解決しようという企画です。

閑話休題、今回はPerlとVBSを交えてPythonについて語ります。何故かって?宿題だからさ。

PerlとPythonと似通った点は?

  • スクリプト言語であること
  • 型が動的に決まる
  • 書きやすさを追求したゆるい言語仕様

VBSは書きやすさの面で劣るけど、ほかは一緒。

PerlとPythonの文法

Perl → セミコロンで文の終わり、{}でブロックを表現
VBS → 改行で文の終わり、予約語 - 予約後でブロックを表現
Python → 改行で文の終わり、ブロックはインデントの深さで表現

VBSは _ で改行をエスケープ、Pythonは ¥ で改行をエスケープできる。

下のPerlスクリプトを、

1: $i=1;
2: while (<>) {
3:     $i++;
4:     print "$i: $_";
5: }

VBSで書くと、

1: i = 0
2: Do Until WScript.StdIn.AtEndOfLine
3:     i = i + 1
4:     strInput = WScript.StdIn.ReadLine()
5:     WScript.StdOut.WriteLine i & ": " & strInput
6: Loop

Pythonで書くと、

1: i = 0
2: for line in sys.stdin:
3:     i += 1
4:     print str(i) + ": " + line,

VBSって面倒やなぁ。 そしてPerlよりPythonの方が意味が理解しやすいですね。


※注 これは、Microsoftがやっている「Hey,scripting guy!」のパクリ企画です。 ご意見、ご要望はお問い合わせよりお願いします。