こんにちは、山本です。
"Noritsugu Nakamura <nnakamur@...>"さんは書きました:
> kikwai@... (機械伯爵) wrote:
> > Pythonでは、インデントだけでブロックが判別されるので、
> > {}を書く必要がありません☆
> >
> > ・・・いや、ご存知とは思いますけど、ノリで・・・
>
> それも本当に良いのか悪いのか私には判断ついていないです。
> (悪いと完全には言えないと断言できないということは
> OK ってことなのかもしれません (^_^;
Cのプログラムで多段のブロックを使っているソースを読むと、
}
}
}
}
}
break;
}
}
}
}
return 0;
}
みたいな部分に遭遇することがあります。
「あのbreakは何をbreak?」みたいな(^^;
上記の例は極端に悪い例でしたけど、
O'Reillyの「Python入門」P.118に、インデント構造を利用することで
ブロックの始まりと終わりに間違いの起こりやすい記号やマークを
記述しなくて済むようにしていると説明されています。
また、「=」が演算子として使えなくて結構痛いと思うこともありますが、
これは「==」の記述ミスを避けるためと説明されています。
Pythonってそういう些細だけどありがちな問題を回避するための工夫が
なされている言語なんだろうなと、今、本を読んで初めて思いました(笑)。
あと、条件式に「10 <= x < 20」みたいな書き方ができるあたり
学校の先生に好かれそうな感じがしますね(^^)。
関数定義の()が省略できないのもこういう数学的?理由だったりして(^^;
> > まぁ、{}が省略できる分、()が省略できないというトレード
> > オフがありますが、これについては、今後さらにつっこんで話して
> > いきたいと思います。
> 良く分かっていないのは Python で関数定義の () はなぜ
> 必要なのか?です。(引数列の終端として「:」がつくので
> 素人考えでは要らないのでは?と思ってしまったのですが…)
--
Koichi Yamamoto,
http://www3.ocn.ne.jp/~yamako/