SSブログ

間違う自由 [Tech]

プログラミング言語Python.
Perlよりは Cのように見えるスクリプト言語、という程度の認識しかなかったのだけど、今回受講した edX のクラスが Python だったので初めて使ってみた。

スクリプト言語なので、簡単なことはあくまでも簡単に書けるのは普通として、スクリプト言語なのに、C++ みたいにクラス作ったり継承したりできるのは面白い。コンパイルいらないし、教育目的には便利かもしれない。

Cから派生してきた言語との大きな違いは、if文などのブロック構成を括弧じゃなくてインデントで表現することだ。長年の C/C++生活で、すっかり C言語脳になっていたので、インデントの使い方を強制される Python には最初凄くストレスが溜まった。コーディングスタイルを強制されると、基本的人権を剥奪されたような気分になってしまうのだ。

でも考えてみると、C言語ではコンパイラのために括弧、読む人間のためにインデント、と二度手間だったわけで。そして両者が食い違うリスクもあったわけで。それならインデント一本でいいじゃん、という Python はなるほど合理的ではあるね。

そしてさらによく考えてみると、Pythonは何も無茶なコーディングスタイルを要求するわけではなくて、結局Cと同じようなインデントなわけで、ただそれが処理系で使われるので間違ったらエラーになるというだけだ。Cにあって Pythonにない自由は何かというと「インデントを間違う自由」なのだ。それもまた基本的人権の一部なのか?
nice!(0)  コメント/Comment(2)  トラックバック/Trackback(0) 
共通テーマ:日記・雑感

nice! 0

コメント / Comment 2

tommy

なるほどー。私はインデントルールをキッチリ守りたい方なんですが、Pythonで長くなりすぎる行を2行に分割する自由はあるんでしょうか? 行を分割した時、後半の行の前の方に、見やすくなる位置までスペースを入れるとインデントと見間違いやすくなるのですが、何か良い解決策があります?
by tommy (2014-02-15 21:32) 

dokin

バックスラッシュで改行をエスケープすれば分割可です。後半行の前のスペースはインデント扱いされないので自由に置けます。

foo = \
 very + \
 long + \
 line

てかんじで。
改行の扱いは sh/csh script由来なんですね。
by dokin (2014-02-15 22:00) 

コメントを書く/Write comment

お名前/Name:[必須]
Your URL:
コメント/Comment:
画像認証/Captcha:
下の画像に表示されている文字を入力してください。Enter the numbers shown in the picture

Facebook コメント

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。