このエントリーは、Python入門者と、Python入門予備軍の方を対象としています。
どうしてPythonやるの?
Pythonって覚えやすい言語なんです。といっても、それなりに使いこなせるようになるには、数十時間程度はかかるわけです。なんとなく・・で勉強するなら、やらないほうがましです。ちゃんと、自分なりの目標を設定してから勉強しましょう。私の目標は、2011年中に、Pythonで日本国内でそこそこ有名になることです。そこそこでいいです。pythonでぐぐって10番ぐらいに表示されれば満足です。それぐらい有名になったら、来年はPythonで仕事しつつ、他のこと勉強してると思います。
実は世界的にはPHPより人気がある
Pythonは、Java、C、C++に次いで人気のある言語です。決してマイナー言語ではありません。
2011年2月のランキング
GoogleAppEngineで使える
クラウドコンピューティングって、聞いたことありますよね。やってます?Amazon EC2とか、格安VPSサービスとかあるけど、あーいうのって、基本料金かかるんですよね。格安サービスといっても、月1000円ぐらいかかります。で、月1000円で始めたとします。アクセス増えます。どうします??EC2なら、インスタンス切り替えるだけですよね。1時間単位で課金されるので楽っちゃー楽です。でも、サーバの構成とか意識しないといけない時点で、真のクラウドコンピューティングじゃないと思うんですよ。使った分だけお金を払えばいい。サーバ構成やら付加分散やらの小難しい話はPaaSプロバイダに丸投げしちゃいたいわけですよ。その点、GoogleAppEngineは最高です。サーバの選択画面なんてありません。アクセス増えれば勝手にスケールアウトしちゃいます。課金上限を超えない限りは勝手にうごいてくれる夢のクラウドサービスです。
- 基本料金無料
- サーバ構成はきにしなくてよい
環境構築
環境構築の際に気をつけることは、バージョン2.5系を選ぶこと。最新版は3.2なのですが、GoogleAppEngneがPython2.5なので、Python2.5を使いましょう。Python2.5を使いましょう。Python2.5を使いましょう。
ダウンロードページ
http://www.python.org/download/releases/2.5/
Windows用インストーラ
http://www.python.org/ftp/python/2.5/python-2.5.msi
基本編
1. バージョン確認方法
使っている言語のバージョンぐらい確認しておきましょう。2.5がお勧めです。2.5が。
コマンドライン上で確認
1 2 | C:\Python25>python -V Python 2.5.4 |
python上で確認
1 2 3 4 5 6 7 | >>> import sys >>> sys.version '2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]' >>> sys.subversion ('CPython', 'tags/r254', '67916') >>> sys.version_info (2, 5, 4, 'final', 0) |
2. 数値
3つの数値型
Pythonの数値には、整数型、長整数型(3.0以降では整数型と融合)、浮動小数点型の3つがある。
1 2 3 4 5 6 | >>> 1 1 >>> 1.1 1.1000000000000001 >>> 10000000000000000000 10000000000000000000L |
型判定
型を調べるにはtype関数を使う
1 2 3 4 5 6 | >>> type(1) <type 'int'> >>> type(1.1) <type 'float'> >>> type(1000000000000000000) <type 'long'> |
3. 文字列
2種類の文字列型
文字列にはstr型とunicode型がある。日本語を使う場合はunicode型を使うこと。
1 2 3 4 5 6 7 8 | >>> print "foo" foo >>> print u"ほげ" ほげ >>> type("foo") <type 'str'> >>> type(u"ほげ") <type 'unicode'> |
(シングル or ダブル) × (1個 or 3個)
シングルクオーテーションとダブルクオーテーションは同じ意味。文字列中にシングルクオーテーションがあるなら、ダブルクオーテーション使うと楽。両方ある場合は3個ずつ並べればOK。
1 2 3 4 5 6 7 8 | >>> "foo" 'foo' >>> """foo""" #途中に改行が含まれていても良い 'foo' >>> 'bar' 'bar' >>> '''bar''' #途中に改行が含まれていても良い 'bar' |
連接と繰り返し
プラスで文字列連結、掛けるで繰り返し。
1 2 3 4 | >>> print "foo" + "bar" foobar >>> print "*"*20 ******************** |
モジュラ演算
sprintfみたいな感じ。
1 2 3 4 5 6 7 8 9 | #単一値の置換 >>> "This is a %s." % "pen" 'This is a pen.' #複数の値の置換 >>> "%d + %d = %d" % (1,1,1+1) '1 + 1 = 2' #名前指定で置換 >>> print "<title>%(title)s</title>" % {"title": u"Python練習帳"} <title>Python練習帳</title> |
4. リスト
リストは大括弧で囲う。
1 2 3 4 5 6 | >>> [1,2,3] [1, 2, 3] >>> type([1,2,3]) <type 'list'> >>> len([1,2,3]) 3 |
連接とスライシング
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #足し算で結合 >>> [1,2,3] + [1,2,3] [1, 2, 3, 1, 2, 3] #単一要素の取得 >>> [1,2,3][0] 1 #部分列を取得 >>> [1,2,3][0:1] [1] >>> [1,2,3][0:3] [1, 2, 3] #逆順 >>> [1,2,3][::-1] [3, 2, 1] |
5. タプル
不変なリスト。括弧で囲う。
1 2 3 4 | >>> (1,2,3) (1, 2, 3) >>> (1,)#要素数が1の場合は最後にカンマをつける (1,) |
6. アンパック代入
まとめて代入できる。変数の入れ替えなどに便利。
1 2 3 4 5 6 | >>> (a,b) = (1,2) >>> print a,b 1 2 >>> (a,b) = (b,a) >>> print a,b 2 1 |
7. リスト内包表記
Pythonといえばリスト内包表記。使いこなすとかっこいいかも。
1 2 3 4 5 6 | >>> [1,2,3] [1, 2, 3] >>> [x**2 for x in [1,2,3]] [1, 4, 9] #各値を二乗 >>> [x**2 for x in [1,2,3] if x % 2 == 1] [1, 9] #奇数の値を取り出して二乗 |
8. ディクショナリ
連想配列みたいなもの、キーは文字列以外も使える。
1 2 3 4 5 6 | >>> dictA = {"hoge":100, "hige":200} >>> dictA["hoge"] 100 >>> dictA["hoge"] = 300 >>> dictA {'hige': 200, 'hoge': 300} |
9. インデント
Pythonはインデントでプログラム構造を表現する。インデントの崩れたプログラムは実行できない。
スペース8個でタブ1個になるが、スペースとタブを混ぜるのはやめたほうがよい。
10. 条件分岐
ifとelseの後ろにコロンをつける。インデントのついている範囲がIfの対象範囲。
1 2 3 4 5 6 7 | >>> x = 10 >>> if x > 10: ... print "big" ... else: ... print "small" ... small |
11. ループ
for in を使う。
1 2 3 4 5 6 7 8 | >>> for x in range(5): ... print x ... 0 1 2 3 4 |
12. 例外処理
try exceptを使う。
1 2 3 4 5 6 | >>> try: ... print undefined_value ... except: ... print "error" ... error |
13. 関数
defで定義する。
1 2 3 4 5 6 7 | >>> def double(x): ... return x * 2 ... >>> double(10) 20 >>> double(double(10)) 40 |
14. クラス
Python動的型付け言語。すべての値がオブジェクト。
詳細は→クラス(class)
15. モジュール
プログラムの記述されたファイル。モジュールはimportして使う。
1 2 3 | >>> import math >>> math.pi 3.1415926535897931 |
モジュールの一部を使いたい場合は from * import * を使う
1 2 3 | >>> from math import pi >>> pi 3.1415926535897931 |
16. コメント
文法上は単行のコメントしかサポートされていません。複数行のコメントは文字列で記述します。
1 2 3 4 5 6 | #コメント u""" 複数行のコメントは文字列にする。 文字列として記述しておけば、ドキュメントを自動生成できる。 コメント内に日本語を記述する場合はunicode文字列にしておく。 """ |
まとめ
このエントリーを読んでPythonを分かった気分になって頂けると幸いです。でも、プログラムって、実際に手を動かさないと身につきません。早速Pythonをインストールして使ってみましょう!
来週中を目処に、GAE向けの入門記事書くつもりなので、それまでにPythonの基礎しっかりみにつけておきましょう!