Python とは

Guido van Rossum により開発されたオブジェクト指向スクリプト言語です。

言語設計において「シンプル」で「習得が容易」という点に重点が置かれています。 言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールによってサポートするという特徴があります。

英国のコメディ番組「モンティ パイソン」にちなんで Python と名付けられました。

via: 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()