絶対に挫折しない最強言語Python入門Part.1 -最強のPython。Pythonはいいとこだらけ!-

絶対に挫折しないiPhoneアプリ開発入門に続き、絶対に挫折しない最強言語Python入門の連載を始めます。まだiPhoneアプリ開発入門のほうが未完成ではあるのですが、いろいろガンガンやっていきたいと思います(笑)

なぜPythonなのか。

ぼくがPythonを知ったきっかけはハッカーになろう (How To Become A Hacker)でした。
この文章の中で、筆者は、

もしコンピュータ言語をなにも知らないなら、まず Python から始めることをおすすめします

設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています

プログラミングに手をつける準備ができたら、私は Python から始めることを勧めます。たくさんの人が Perl を勧めるのを聞かれたでしょうし、Perl は今なお Python よりも人気がありますが、習得するのが Python より難しいですし、(私の考えでは)Python ほどうまく設計されてません。ウェブには Python を利用するプログラミング初心者のための情報源が存在します


ハッカーになるのにPythonという言語はいいものなのかなぁなんて漠然とした考えでとりあえずPythonについて勉強し始めました。するとすると、なんときれいで明快で、気持ちのいい、それでいて力強い言語なことでしょう!ぼくはあっというまにPythonに魅せられました。そんなわけで、ぼくはこの連載を通して、Pythonの魅力や、実用的なことなどを書いていけたらと思います。

まだまだPythonの日本語書籍は少なく、またブログなどでPythonについて日本語情報も少ないと思っています。
そんな状況の中、ぼくのブログがPythonをいろんな人に知ってもらえる一助になれば幸いです。


Pythonはコードが短く読みやすい

Pythonではプログラムを短く、読みやすく書くことができます。同じことをC,C++,Javaで書くよりもずっと短いことが多い言語です。これを可能にしているのは、Pythonチュートリアル 第2版から引用すると、

  • 高水準のデータ型が、複雑な操作を単一分で表記することを可能にしている
  • 文のグルーピングは、カッコで囲うことでなくインデントで行われる
  • 変数や引数の宣言が不要

例えばJavaで10+20=30という計算式のコードを書いてみます。

class keisan {    //←←中カッコ「{}」が必ず必要。
    public static void main(String args[]) {
        int num1,num2,num3;    //変数の宣言がいる。Javaでは変数が何者なのか明らかにしておかなくてはならない。

        num1 = 10;
        num2 = 20;
        num3 = num1 + num2;

        System.out.println(num3);
    }
}

コンパイルして、

>javac keisan.java

その後、実行

>java keisan.java
30


10+20=30という結果を出力するだけでも割と大変ですね。

Pythonならどうでしょう。
まずPythonには「対話型のコマンドライン」でコードを入力し、計算結果を得るだけならこれだけ。
あなたがMacユーザーならターミナルを開いて、 pythonと入力してEnterを押してください。

ぼくの場合こんな感じで起動します。

Last login: Thu Jan 12 12:42:16 on console
Watanabe-no-iMac:~ ics_hiro$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

10+20と打ち込んでEnterを押してください

Last login: Thu Jan 12 12:42:16 on console
Watanabe-no-iMac:~ ics_hiro$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 10+20
30 


あっという間に答えが出力されるやないかーい


対話型のセッションでは入力したコードが保存されないので、上記のJavaのコードと比較するのは反則なのですが、こんな感じで簡単にPythonを扱えるんですよ!っていう気持ちで書きました。

もうちょいプログラムらしく書くと、

>>> num1=10
>>> num2=20
>>> num1 + num2
30

int num1 のように変数が整数ですよってわざわざ言わなくても、Pythonの場合はプログラム実行時にダイナミックに型付けしてくれます。


大事なのはまだまだあるのですが、代表的なのがPythonはブロックを{}で囲む必要がないことです。

C言語の経験がもしあるなら、これが当たり前だと思います。
Cの場合

if (x > y) {
    x = 100;
    y = 200;
}

一方、Pythonの場合

if x > y:
    x = 100
    y = 200

Pythonでは、字下げ、つまり空白の作り方でプログラムの論理的構造を示します。同じブロックに属するコードでは字下げを統一しなければなりません。

この字下げのルールによって、Pythonプログラマーが作るコードの一貫性、統一性が保たれ、自分以外の人にも読みやすいものとなります。もちろん自分が見直すときにも、論理構造がわかりやすいので、改善、再利用しやすくなります。

これからPythonを学んでいく中で、徐々にこの字下げのルールの素晴らしさを実感していきましょう。


Pythonはかなりメジャーなサービスでも使われている

Googleの検索システムでは様々なところでPythonが使用されています。みなさんがよく見ているであろうYouTubeもかなりの部分がPythonでできているようです。そしてそして、あのFacebookPython…!!!これは学ぶしかなさそうですな!

Pythonで出来ることは無限大!

Pythonハッカーになろう (How To Become A Hacker)でも書かれているようにとても設計がすぐれていて、実用性が高い言語です。

  • ウェブサイトの構築
  • ゲーム開発
  • ロボット開発

他にもさまざまな応用のきく言語です。いやはやさすが最強のPython


Pythonの魅力は語りつくせないのですが、この連載を通してところどころに他の言語との比較などもいれつつ、勉強していく予定です。