Python インタープリターを始動するには、python と入力します。
$ python Python 1.5.2 (#1, May 28 1999, 14:49:17) [GCC 2.7.2.3] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> |
下に示したのはシンプルなコマンドの例です。
>>> print "Hello World" Hello World >>> |
インタープリターを終了するには、Ctrl-D (Linux の場合) または Ctrl-Z (Windows の場合) を押すか、または次のように入力します。
>>> import sys >>> sys.exit() $ |
または
$ python Python 1.5.2 (#1, May 28 1999, 14:49:17) [GCC 2.7.2.3] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> raise SystemExit $ |
注:上の例はインタープリター内にいることを示しています (>>> はプロンプトを示します)。一部はファイルから実行された場合と似ています。
Python プログラムはファイルから実行することもできます。拡張子は通常、.py になります。
次のような helloworld.py というファイルを作成したとします。
#!/usr/bin/env python print "Hello World" |
次のようなコマンドでこれを呼び出すことができます。
$ python helloworld.py Hello World $ |
ステートメントは、たとえばセミコロン (;) などではなく、改行で終わります。下の例は完全なコマンドを示しています。
>>>print "hello" hello |
次の例では、ステートメントがコロン (:) で終わっていて、その後で字下げによってブロックが示されています。
>>> name = "Larry" >>> if name == "George": ... print "Hi George" ... else: ... print "Who are you?" ... print "You're not George!" ... Who are you? You're not George! >>> |
この例の ... は、ブランク行までブロックが続いていることを示しています。
コメントは # で始まり、行の終わりまで続きます。
print "Tell me." # This is a comment |
識別子は変数、メソッド、またはモジュールに名前を付けるために使用されます。これらの先頭の文字は数値以外の文字でなければなりません。それ以外では文字、数字、下線 (_) を使用できます。識別子はケース・センシティブです。
B = 4
b = 2
if b != B:
print 'small b is not equal to large B'
|
予約語 (Python に固有):
and elif global or assert else if pass break except import print class exec in raise continue finally is return def for lambda try del from not while |
__ (2 個の下線) が先頭に付いている識別子は、特別な意味を持っている場合があります。先頭と末尾に __ が付いた変数または関数の名前は、組み込みシンボルに使用されます。
__name__ the name of the function __doc__ the doc string __init__() what we do on startup |
-
数値
数値タイプには、整数、長整数、浮動小数点、および複素数があります。>>> x = 4 >>> int (x) 4 >>> long(x) 4L >>> float(x) 4.0 >>> complex (4, .2) (4+0.2j) >>>
-
文字列リテラル
文字列は対になった引用符 (', " ,""") で囲みます。2 つのストリングは演算子なしで、隣接するストリングと結合します。>>> print "Hi" "there" Hithere >>>
バックスラッシュ (\) は、ロウ文字列内にあるものを除き、特殊文字をエスケープします。
>>> print r'\n\\' # not backslash escaped \n\\
ロウ文字列は,バックスラッシュを増やさずにすむため、通常の表記によく使われます。
'\\[foo\\]' r'\[foo\]' # these are the same
単一引用符 (') と二重引用符 (") は同等です。
"Don't enclose strings with ' in 's" 'Without escaping the \''
-
[ ] リスト
整数索引付き配列は 0 で始まります。>>> months = ["January", "February"] >>> print months[0] January >>> months.append ("March") >>> print months ['January', 'February', 'March']
コロン (:) はスライス演算子です。これを使用してリストの一部を操作することができます。スライスに対する 2 番目の引き数はノンインクルーシブです (1:2 はリストの 2 番目の項目と 3 番目の項目を指しますが、3 番目の項目は結果に含まれません)。
>>> print months[1:2] ['February']
プラス (+) は連結演算子です。
>>> print months+months ['January', 'February', 'March', 'January', 'February', 'March']
リストにはあらゆる種類の Python オブジェクトを入れることができ、またネストが可能です。
>>> months.append (months) >>> print months ['January', 'February', 'March', ['January', 'February', 'March' ]] >>> months.append(1) ['January', 'February', 'March', ['January', 'February', 'March' ], 1]
-
() タプル
タプルはリストと同じですが、作成後に変更はできません。通常は辞書へのキーとして使用されます。
-
{} 辞書
辞書は、キーによって添字付けられた連想配列またはハッシュです。キーは任意の python オブジェクトにすることができますが、通常はタプルになります。>>> mydict = {"height" : "average", ... "skill" : "intermediate", ... "salary" : 1000 } >>> print mydict {'height': 'average', 'skill': 'intermediate', 'salary': 1000} >>> print mydict["skill"] intermediate >>> mydict[0] = 'Foo' >>> mydict [(5, 6)] = 'Coordinate 5, 6'
文字列やタプルのような、種類の異なる Python オブジェクトをキーとして使用できます。ただし、リストと辞書はキーとして使用できません。
>>> q = 4 >>> h = 5 >>> if q< h : ... print "first test passed" # indentation needed ... else: ... print "first test failed" ... first test passed |
論理演算子は、"or," "and," "not" です。
演算子は、以下のものです。
< > == >=<= != |
-
ファイルの読み取り
>>> fh = open("helloworld.py") >>> for line in fp.readlines() # read a line (readline method applied to fh) ... print line, # print line, adding newline at end ... #!/usr/bin/python print "Hello World" >>> fh.close()
-
ファイルの書き込み
$ python Python 1.5.2 (#1, May 28 1999, 14:49:17) [GCC 2.7.2.3] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> fh = open("out.txt", "w") >>> fh.write ("we're writing...\n") >>> fh.close() >>> # I typed ^D to exit $ cat out.txt we're writing... $
for はシーケンス (列) の各メンバーを繰り返すために使用されます。これはどのようなタイプの列 (リスト、タプル、辞書) にも使用できます。
>>> for x in range(1,5): ... print x ... 1 2 3 4 |
range は ([start,] end [,step]) によって記述され列を生成します。start と step はオプションです。指定しなかった場合、start は 0 に、step は 1 とそれぞれみなされます。
関数はdef キーワードを使用して命名されます。
>>> def myfunc(a,b): ... sum = a + b ... return sum ... >>> myfunc (5,6) 11 |
関数を作成するときは、デフォルト・パラメーターをこれに与えることができます。
>>> def myfunc(a=4,b=6): ... sum = a + b ... return sum ... >>> myfunc() # we use both defaults 10 |
関数にはキーワード・パラメーターを与えられるため、パラメーターの順序は任意でかまいません。
>>> myfunc(b=4) # a defaults to 4, we override the value of b 8 |
class にはメソッドの集まりが含まれます。各メソッドは、以下のように、最初の引き数 (self) としてオブジェクトを参照します。(詳しくは、Evelyn の以前のコラム、Python 101: コードのテスト を参照してください。)
class PenguinPen:
def __init__(self):
self.penguinCount = 0
def add (self, number = 1):
""" Add one or more penguins to the pen
The default number of penguins to add is 1 """
self.penguinCount = self.penguinCount + number
def remove (self, number = 1):
""" Remove one or more penguins from the pen """
self.penguinCount = self.penguinCount - number
def population (self):
""" How many penguins in the pen? """
return self.penguinCount
|
エラーが検出されると、例外が発生し、トレースバックが表示されます。次のようなファイル except.py を作成したとします。
#!/usr/bin/python print a |
これを実行すると、次のような内容が返されます。
sylvia:/tmp$ python except.py
Traceback (innermost last):
File "except.py", line 2, in ?
print a
NameError: a
|
例外を検出した場合、これを次のように処理することができます。
>>> try: fh=open("new.txt", "r")
... except IOError, e:
... print e
...
[Errno 2] No such file or directory: 'new.txt' |
raise ステートメントで、自分独自の例外のシグナルを出すことができます。
>>> raise MyException |
また、例外を使用してインタープリターから抜けることもできます。
>>> raise SystemExit |
モジュールは、.py で終わるファイルにあるメソッドの集まりです。モジュールの名前は多くの場合、ファイルの名前によって決まります。
以下のような内容のファイル mymodule.py を作成したとします。
def one(a): print "in one" def two (c): print "in two" |
モジュールを使用するためには、これをインポートします。dir() はモジュールの内容をリストします。
>>> import mymodule >>> dir(mymodule) ['__builtins__', '__doc__', '__file__', '__name__', 'one', 'two'] >>> one >>> mymodule.one(2) in one |
モジュールの多くは、標準的な Python の配布で提供されます。ライブラリー・モジュールはすべてPython.org で見ることができます。
主要な Python Web サイト:- Python はPython.org Web サイトからダウンロードできます。このサイトには、バイナリー、ソース、RPM ディストリビューションなどがあります。
- Python.org のモジュール・リストを参照。
- Python.org のドキュメンテーションとメーリング・リストを参照。
-
Python のコミュニティーに参加するには。
-
JPython についてもっと知りたいときは。
- Programming Python Mark Lutz; O'Reilly, 1996 年。やや古くなりましたが、現在もっとも完全な Python プログラミング・ブックです。Appendix E の Tutorial は特にお勧めです。
- Learning Python Mark Lutz and David Ascher; O'Reilly, 1999 年。とても読みやすい Python の入門書で、Python の学習とプログラミングの両方に関心のあるプログラマーにお勧めします。
- Internet Programming with Python Aaron Watters, Guido van Rossum, and Jim Ahlstrom。Python コミュニティーの中でもっとも経験の豊かな 3 人が書いた、Python の解説本 (グル・ブック) です。この本は、CGI スクリプトや HTML 文書の生成を含む、インターネット・プログラミングに焦点をあてています。やや古い本です。
Evelyn Mitchell 氏は、コンピューターのさまざまな技術およびプログラミングに関して 10 年以上の経験があります。著者は、次のレベルとして、新しく tummy.com Ltd. の社長 (CEO) に就任し、現在は、人間を相手にした技術的およびプログラミング的作業に従事しています。メール・アドレス efm@tummy.com です。