本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Python 101 cheat sheet

言語の入門用クィック・リファレンス文書

Evelyn Mitchell, CEO, Tummy.com
Evelyn Mitchell 氏は、コンピューターのさまざまな技術およびプログラミングに関して 10 年以上の経験があります。著者は、次のレベルとして、新しく tummy.com Ltd. の社長 (CEO) に就任し、現在は、人間を相手にした技術的およびプログラミング的作業に従事しています。メール・アドレス efm@tummy.com です。

概要: Python コラムニスト Evelyn Mitchell が、この言語について知りたい人のために、クィック・リファレンスと学習ツールを提供します。これを印刷して手元に置き、プログラミングに取りかかりましょう!

日付:  2000年 2月 01日
レベル:  中級 この記事の原文:  英語
アクティビティー: 1040 ビュー
お気軽にご意見・ご感想をお寄せください: 


Python の実行

インタープリター

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 サイト: 出版物:
  • 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 文書の生成を含む、インターネット・プログラミングに焦点をあてています。やや古い本です。

Usenet サイト: Evelyn Mitchell による関連 developerWorks コラム:

著者について

Evelyn Mitchell 氏は、コンピューターのさまざまな技術およびプログラミングに関して 10 年以上の経験があります。著者は、次のレベルとして、新しく tummy.com Ltd. の社長 (CEO) に就任し、現在は、人間を相手にした技術的およびプログラミング的作業に従事しています。メール・アドレス efm@tummy.com です。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=286887
ArticleTitle=Python 101 cheat sheet
publish-date=02012000
author1-email=
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。