perlとpythonで1から10までループ

意外と、どちらにも長所と短所があるからなんともいえないんだけど、両方とも取り入れてくれないかなぁと思ってみたりして。そういう思想だと、やり方は1つじゃないというPerlのほうが合っているんだろうけど、スタイル的には堅めのPythonのほうが好きだからなんとも言えん。

たとえば、1〜10までループさせるにしても、書き方はいろいろとある。

Cみたいに、

for(i=0;i<10;i++)
{
printf("%d ",i);
}

というふうには書きたくはない・・・。もはやこいつはコンパイルにすらかけたくない。

Perlの..演算子は意外と気に入っている。範囲指定でループさせられる。また、デフォルト変数の$_という仕組みも良いよね。ループさせるのにカウンタも要らないし、変数を宣言しなくても良いというのが、コンパイラ言語しかわからない人には理解出来ないだろう。スクリプト言語をかじったことがある人間だけがわかる、その感覚も大事にしたい。

$more loop.pl
use strict;
use warnings;

for(1..10)
{
print $_ ;
print " "
}
$perl loop.pl
1 2 3 4 5 6 7 8 9 10
$

pythonでも、シンプルでスマートな方法でループをさせる仕組みがある。ただ、リストや辞書などのキー配列を使わず、数値を使う場合にはあまり良いイテレーションの仕方はわからない。range関数の戻り値を使ったループは、Pythonらしくていいかなとは思う。

>>> for i in range(1,11):
print i , " ",

1 2 3 4 5 6 7 8 9 10
>>>

いろいろだね。

コメント