Python とは
Guido van Rossum により開発されたオブジェクト指向スクリプト言語です。
言語設計において「シンプル」で「習得が容易」という点に重点が置かれています。 言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールによってサポートするという特徴があります。
英国のコメディ番組「モンティ パイソン」にちなんで Python と名付けられました。
Python の特徴
- オブジェクト指向言語
- 動的な型付け
- インデントを用いたブロック構造の定義
例を示します。
def func(x):
if (x % 2) == 0:
return x
else:
return x + 1
このように、C などで見られる {} によるブロック構造の代わりに インデントによってブロック構造を定義します。
インデントはタブでもスペースでも構いません。Python 公式のコーディングスタイルである PEP8 ではスペース4つによるインデントが推奨されています。
とりあえず Hello, World!
ベタですが、Hello World プログラムを Python で書いてみましょう。
エディタで hello_world.py を作成し、下記のように入力してください。
print "Hello, World!"
python インタプリタで hello_world.py を実行します。
$ python hello_world.py
Hello, World!
基本的な文法について
コメントと空行
コメントは # で表され、その行の最後まで続きます。 文の途中からでもコメント扱いされます。
# これはコメントです
複数行コメントは仕様上存在しませんが、代わりに複数行文字列が使用されます。 ただし、インデントに沿って記述する必要があります。
i = 0
"""
この中はコメント扱いされる。
複数行記述できる
"""
if i > 0:
"""
これはインデントに沿っていないのでエラー
"""
print i
また、空行(改行のみ、空白 or タブのみ、コメントのみの行)に関しては インデントを無視しても問題ありません。
メソッド呼び出し
Ruby や Perl では () 無しでも問題ありませんが、Python の場合は () を付けないと文法エラーになります。
ちなみに、 print はメソッドや関数ではなく文なので付ける必要はありません。
func('1') # OK
func '1' # ERROR
print '1' # OK
文字列について
- シングルクォーテーション、ダブルクォーテーションに区別なし
- 通常の文字列の他に Raw 文字列、Unicode 文字列がある
Raw 文字列では \ によるエスケープシーケンスが無効になります。
正規表現で \ そのものにマッチングさせたいような場合に有効です。
import re
## 通常の文字列で \ にマッチさせたい場合
re.match("\\\\", string)
## Raw 文字列で \ にマッチさせたい場合
re.match(r"\\", string)
Unicode 文字列は頭に u と付ける。
string = "あああ" # str型
u_string = u"あああ" # unicode型
詳細については後述。
文字列に変数を埋め込む
二種類の方法があります。
a = "hoge"
print "a is %s" % (a)
print "a is %(a)s" % locals()